| 1234567891011121314151617181920212223242526272829303132333435 |
- 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()
|