36 lines
1.3 KiB
Python
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()
|