| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- import unittest
- from app.services.oa_person_select import (
- extract_person_ids,
- person_contains_match,
- validate_person_form_values,
- )
- class TestOaPersonSelect(unittest.TestCase):
- def test_validate_multi_ok(self):
- schema = {
- "rule": [
- {
- "type": "person",
- "field": "F1",
- "title": "协同人",
- "props": {"multiple": True},
- }
- ]
- }
- data = {"F1": [{"id": "u1", "name": "张三"}, {"id": "u2", "name": "李四"}]}
- self.assertEqual(validate_person_form_values(schema, data), [])
- def test_validate_required_empty(self):
- schema = {
- "rule": [
- {
- "type": "person",
- "field": "F1",
- "title": "协同人",
- "$required": True,
- "props": {"multiple": True},
- }
- ]
- }
- errs = validate_person_form_values(schema, {"F1": []})
- self.assertTrue(any("必填" in e for e in errs))
- def test_validate_max(self):
- schema = {
- "rule": [
- {
- "type": "person",
- "field": "F1",
- "title": "协同人",
- "props": {"multiple": True, "max": 1},
- }
- ]
- }
- errs = validate_person_form_values(
- schema,
- {"F1": [{"id": "u1", "name": "A"}, {"id": "u2", "name": "B"}]},
- )
- self.assertTrue(any("上限" in e for e in errs))
- def test_extract_and_contains(self):
- self.assertEqual(extract_person_ids({"id": "u1", "name": "A"}), {"u1"})
- self.assertTrue(
- person_contains_match(
- [{"id": "u1", "name": "A"}],
- ["u1", "u2"],
- )
- )
- self.assertFalse(
- person_contains_match(
- [{"id": "u3", "name": "C"}],
- ["u1", "u2"],
- )
- )
- if __name__ == "__main__":
- unittest.main()
|