| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- import unittest
- from app.services.oa_dept_select import validate_dept_form_values
- class TestValidateDeptFormValues(unittest.TestCase):
- def test_multiple_ok(self):
- schema = {
- "rule": [
- {
- "type": "dept",
- "field": "depts",
- "title": "部门",
- "$required": True,
- "props": {"multiple": True, "max": 2},
- }
- ]
- }
- data = {
- "depts": [
- {"id": "d1", "name": "中科兴皖 / 研发"},
- {"id": "d2", "name": "中科兴皖 / 质量"},
- ]
- }
- self.assertEqual(validate_dept_form_values(schema, data), [])
- def test_required_empty_array(self):
- schema = {
- "rule": [
- {
- "type": "dept",
- "field": "depts",
- "$required": True,
- "props": {"multiple": True},
- }
- ]
- }
- errs = validate_dept_form_values(schema, {"depts": []})
- self.assertTrue(any("必填" in e or "部门" in e for e in errs))
- def test_single_must_be_object(self):
- schema = {
- "rule": [
- {
- "type": "dept",
- "field": "dept",
- "props": {"multiple": False},
- }
- ]
- }
- errs = validate_dept_form_values(schema, {"dept": [{"id": "d1", "name": "A"}]})
- self.assertTrue(len(errs) >= 1)
- def test_max_exceeded(self):
- schema = {
- "rule": [
- {
- "type": "dept",
- "field": "depts",
- "props": {"multiple": True, "max": 1},
- }
- ]
- }
- data = {
- "depts": [
- {"id": "d1", "name": "A"},
- {"id": "d2", "name": "B"},
- ]
- }
- errs = validate_dept_form_values(schema, data)
- self.assertTrue(any("最大" in e or "上限" in e for e in errs))
- def test_max_exceeded_string_max(self):
- schema = {
- "rule": [
- {
- "type": "dept",
- "field": "depts",
- "props": {"multiple": True, "max": "1"},
- }
- ]
- }
- data = {
- "depts": [
- {"id": "d1", "name": "A"},
- {"id": "d2", "name": "B"},
- ]
- }
- errs = validate_dept_form_values(schema, data)
- self.assertTrue(any("最大" in e or "上限" in e for e in errs))
- def test_nested_fc_row(self):
- schema = {
- "rule": [
- {
- "type": "fcRow",
- "children": [
- {
- "type": "dept",
- "field": "d",
- "required": True,
- "props": {"multiple": False},
- }
- ],
- }
- ]
- }
- errs = validate_dept_form_values(schema, {})
- self.assertTrue(len(errs) >= 1)
- def test_no_dept_fields_ok(self):
- schema = {"rule": [{"type": "input", "field": "t"}]}
- self.assertEqual(validate_dept_form_values(schema, {"t": "x"}), [])
- if __name__ == "__main__":
- unittest.main()
|