test_oa_money_field.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import unittest
  2. from app.services.oa_money_field import validate_money_form_values
  3. class TestValidateMoneyFormValues(unittest.TestCase):
  4. def test_ok_number(self):
  5. schema = {"rule": [{"type": "money", "field": "amt", "title": "金额", "$required": True}]}
  6. self.assertEqual(validate_money_form_values(schema, {"amt": 1234.56}), [])
  7. def test_ok_int(self):
  8. schema = {"rule": [{"type": "money", "field": "amt"}]}
  9. self.assertEqual(validate_money_form_values(schema, {"amt": 10}), [])
  10. def test_ok_null_optional(self):
  11. schema = {"rule": [{"type": "money", "field": "amt", "$required": False}]}
  12. self.assertEqual(validate_money_form_values(schema, {"amt": None}), [])
  13. self.assertEqual(validate_money_form_values(schema, {}), [])
  14. def test_required_missing(self):
  15. schema = {
  16. "rule": [{"type": "money", "field": "amt", "title": "报销金额", "$required": True}]
  17. }
  18. errs = validate_money_form_values(schema, {})
  19. self.assertTrue(any("报销金额" in e for e in errs))
  20. def test_negative_rejected(self):
  21. schema = {"rule": [{"type": "money", "field": "amt"}]}
  22. errs = validate_money_form_values(schema, {"amt": -1})
  23. self.assertTrue(len(errs) >= 1)
  24. def test_string_number_accepted(self):
  25. schema = {"rule": [{"type": "money", "field": "amt"}]}
  26. self.assertEqual(validate_money_form_values(schema, {"amt": "12.5"}), [])
  27. def test_bool_rejected(self):
  28. schema = {"rule": [{"type": "money", "field": "amt"}]}
  29. errs = validate_money_form_values(schema, {"amt": True})
  30. self.assertTrue(len(errs) >= 1)
  31. def test_ignore_other_types(self):
  32. schema = {"rule": [{"type": "input", "field": "x", "$required": True}]}
  33. self.assertEqual(validate_money_form_values(schema, {}), [])
  34. if __name__ == "__main__":
  35. unittest.main()