107 lines
3.2 KiB
Python
107 lines
3.2 KiB
Python
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()
|