test_production_task_set_builtin.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import unittest
  2. from types import SimpleNamespace
  3. from unittest.mock import MagicMock
  4. from app.crud.production_task_set import assert_set_writable, is_super_admin_user
  5. class TestAssertSetWritable(unittest.TestCase):
  6. def test_missing(self):
  7. db = MagicMock()
  8. db.query.return_value.filter.return_value.first.return_value = None
  9. with self.assertRaisesRegex(ValueError, "集合不存在"):
  10. assert_set_writable(db, "s1", "zkxw", {"role": "admin"})
  11. def test_builtin_blocks_admin(self):
  12. db = MagicMock()
  13. db.query.return_value.filter.return_value.first.return_value = SimpleNamespace(
  14. id="s1", is_builtin="1"
  15. )
  16. with self.assertRaisesRegex(ValueError, "内置模版"):
  17. assert_set_writable(db, "s1", "zkxw", {"role": "admin"})
  18. def test_builtin_allows_super(self):
  19. db = MagicMock()
  20. row = SimpleNamespace(id="s1", is_builtin="1")
  21. db.query.return_value.filter.return_value.first.return_value = row
  22. self.assertIs(assert_set_writable(db, "s1", "zkxw", {"role": "super_admin"}), row)
  23. def test_super_admin_helper(self):
  24. self.assertTrue(is_super_admin_user({"role": "super_admin"}))
  25. self.assertFalse(is_super_admin_user({"role": "admin"}))
  26. if __name__ == "__main__":
  27. unittest.main()