diff --git a/jambo/schema_converter.py b/jambo/schema_converter.py index 676a78b..ddcc63c 100644 --- a/jambo/schema_converter.py +++ b/jambo/schema_converter.py @@ -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) diff --git a/tests/test_schema_converter.py b/tests/test_schema_converter.py index c24d160..7ddbbf8 100644 --- a/tests/test_schema_converter.py +++ b/tests/test_schema_converter.py @@ -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)