Implements Object Defaults

This commit is contained in:
2025-04-13 02:37:21 -03:00
parent 62f3f9b1c5
commit 7272b1a74b
7 changed files with 71 additions and 15 deletions

View File

@@ -21,3 +21,29 @@ class TestObjectTypeParser(TestCase):
self.assertEqual(obj.name, "name")
self.assertEqual(obj.age, 10)
def test_object_type_parser_with_default(self):
parser = ObjectTypeParser()
properties = {
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "integer"},
},
"default": {
"name": "default_name",
"age": 20,
},
}
_, type_validator = parser.from_properties("placeholder", properties)
# Check default value
default_obj = type_validator["default_factory"]()
self.assertEqual(default_obj.name, "default_name")
self.assertEqual(default_obj.age, 20)
# Chekc default factory new object id
new_obj = type_validator["default_factory"]()
self.assertNotEqual(id(default_obj), id(new_obj))