Implements Defaults #2

Merged
HideyoshiNakazone merged 2 commits from implements-default into main 2025-04-10 03:49:20 +00:00
2 changed files with 23 additions and 1 deletions
Showing only changes of commit a571e28015 - Show all commits

View File

@@ -90,5 +90,5 @@ class SchemaConverter:
if description := properties.get("description"):
_field_args["description"] = description
_default_value = ... if name in required_keys else None
_default_value = ... if name in required_keys else properties.get("default")
return _field_type, Field(_default_value, **_field_args)

View File

@@ -179,3 +179,25 @@ class TestSchemaConverter(TestCase):
self.assertEqual(obj.address.street, "123 Main St")
self.assertEqual(obj.address.city, "Springfield")
def test_default(self):
schema = {
"title": "Person",
"description": "A person",
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {
"type": "integer",
"default": 30,
},
},
"required": ["name"],
}
model = SchemaConverter.build(schema)
obj = model(name="John")
self.assertEqual(obj.name, "John")
self.assertEqual(obj.age, 30)