test: Add tests for validate_argument_types decorator
This commit is contained in:
parent
1a7b7a589b
commit
5c2fe7c292
1 changed files with 32 additions and 0 deletions
|
|
@ -1155,3 +1155,35 @@ class TestRounding(FrappeTestCase):
|
|||
|
||||
def test_default_rounding(self):
|
||||
self.assertEqual(frappe.get_system_settings("rounding_method"), "Banker's Rounding")
|
||||
|
||||
|
||||
class TestTypingValidations(FrappeTestCase):
|
||||
def test_validate_argument_types(self):
|
||||
from frappe.utils.typing_validations import FrappeTypeError, validate_argument_types
|
||||
|
||||
@validate_argument_types
|
||||
def test_simple_types(a: int, b: float, c: bool):
|
||||
return a, b, c
|
||||
|
||||
@validate_argument_types
|
||||
def test_sequence(a: str, b: list[dict] | None = None, c: dict[str, int] | None = None):
|
||||
return a, b, c
|
||||
|
||||
self.assertEqual(test_simple_types(True, 2.0, True), (1, 2.0, True))
|
||||
self.assertEqual(test_simple_types(1, 2, 1), (1, 2.0, True))
|
||||
self.assertEqual(test_simple_types(1.0, 2, 1), (1, 2.0, True))
|
||||
self.assertEqual(test_simple_types(1, 2, "1"), (1, 2.0, True))
|
||||
|
||||
with self.assertRaises(FrappeTypeError):
|
||||
test_simple_types(1, 2, "a")
|
||||
with self.assertRaises(FrappeTypeError):
|
||||
test_simple_types(1, 2, None)
|
||||
|
||||
self.assertEqual(test_sequence("a", [{"a": 1}], {"a": 1}), ("a", [{"a": 1}], {"a": 1}))
|
||||
self.assertEqual(test_sequence("a", None, None), ("a", None, None))
|
||||
self.assertEqual(test_sequence("a", [{"a": 1}], None), ("a", [{"a": 1}], None))
|
||||
self.assertEqual(test_sequence("a", None, {"a": 1}), ("a", None, {"a": 1}))
|
||||
self.assertEqual(test_sequence("a", [{"a": 1}], {"a": "1.0"}), ("a", [{"a": 1}], {"a": 1}))
|
||||
|
||||
with self.assertRaises(FrappeTypeError):
|
||||
test_sequence("a", [{"a": 1}], True)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue