| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- import unittest
- from app.services.oa_dept_select import validate_dept_form_values
- from app.services.oa_owner_fields import apply_owner_field_defaults
- from app.services.oa_person_select import validate_person_form_values
- class TestOaOwnerFields(unittest.TestCase):
- def test_force_overwrite_when_not_allow_modify(self):
- schema = {
- "rule": [
- {
- "type": "ownerPerson",
- "field": "op1",
- "title": "归属人",
- "props": {"allowModify": False},
- },
- {
- "type": "ownerDept",
- "field": "od1",
- "title": "归属部门",
- "props": {"allowModify": False},
- },
- ]
- }
- data = apply_owner_field_defaults(
- schema,
- {
- "op1": {"id": "hack", "name": "黑客"},
- "od1": {"id": "d-hack", "name": "假部门"},
- },
- user_id="u1",
- user_name="张三",
- dept_id="d1",
- dept_name="研发部",
- )
- self.assertEqual(data["op1"], {"id": "u1", "name": "张三"})
- self.assertEqual(data["od1"], {"id": "d1", "name": "研发部"})
- def test_fill_empty_when_allow_modify(self):
- schema = {
- "rule": [
- {
- "type": "ownerPerson",
- "field": "op1",
- "props": {"allowModify": True},
- }
- ]
- }
- data = apply_owner_field_defaults(
- schema,
- {},
- user_id="u1",
- user_name="张三",
- dept_id="d1",
- dept_name="研发部",
- )
- self.assertEqual(data["op1"], {"id": "u1", "name": "张三"})
- def test_keep_user_value_when_allow_modify(self):
- schema = {
- "rule": [
- {
- "type": "ownerPerson",
- "field": "op1",
- "props": {"allowModify": True},
- }
- ]
- }
- data = apply_owner_field_defaults(
- schema,
- {"op1": {"id": "u2", "name": "李四"}},
- user_id="u1",
- user_name="张三",
- dept_id="d1",
- dept_name="研发部",
- )
- self.assertEqual(data["op1"], {"id": "u2", "name": "李四"})
- def test_validate_owner_person_single(self):
- schema = {
- "rule": [{"type": "ownerPerson", "field": "op1", "title": "归属人"}]
- }
- self.assertEqual(
- validate_person_form_values(
- schema, {"op1": {"id": "u1", "name": "张三"}}
- ),
- [],
- )
- errs = validate_person_form_values(
- schema, {"op1": [{"id": "u1", "name": "张三"}]}
- )
- self.assertTrue(any("单个" in e for e in errs))
- def test_validate_owner_dept_single(self):
- schema = {
- "rule": [{"type": "ownerDept", "field": "od1", "title": "归属部门"}]
- }
- self.assertEqual(
- validate_dept_form_values(schema, {"od1": {"id": "d1", "name": "研发"}}),
- [],
- )
- if __name__ == "__main__":
- unittest.main()
|