Files
zkxw/backend/tests/test_production_task_set_builtin.py
T
2026-09-01 11:32:49 +08:00

36 lines
1.3 KiB
Python

import unittest
from types import SimpleNamespace
from unittest.mock import MagicMock
from app.crud.production_task_set import assert_set_writable, is_super_admin_user
class TestAssertSetWritable(unittest.TestCase):
def test_missing(self):
db = MagicMock()
db.query.return_value.filter.return_value.first.return_value = None
with self.assertRaisesRegex(ValueError, "集合不存在"):
assert_set_writable(db, "s1", "zkxw", {"role": "admin"})
def test_builtin_blocks_admin(self):
db = MagicMock()
db.query.return_value.filter.return_value.first.return_value = SimpleNamespace(
id="s1", is_builtin="1"
)
with self.assertRaisesRegex(ValueError, "内置模版"):
assert_set_writable(db, "s1", "zkxw", {"role": "admin"})
def test_builtin_allows_super(self):
db = MagicMock()
row = SimpleNamespace(id="s1", is_builtin="1")
db.query.return_value.filter.return_value.first.return_value = row
self.assertIs(assert_set_writable(db, "s1", "zkxw", {"role": "super_admin"}), row)
def test_super_admin_helper(self):
self.assertTrue(is_super_admin_user({"role": "super_admin"}))
self.assertFalse(is_super_admin_user({"role": "admin"}))
if __name__ == "__main__":
unittest.main()