fix(jambo): Fix allOf constraints (#1)

* Fix incorrect min/max length handling in allOf type parser and update tests accordingly

* Fix schema converter test to correct allOf handling
This commit is contained in:
Thomas
2025-07-04 11:00:06 +02:00
committed by GitHub
parent d431dca353
commit cbcb56c3c4
3 changed files with 11 additions and 8 deletions

View File

@@ -74,10 +74,10 @@ class AllOfTypeParser(GenericTypeParser):
return old_value + new_value return old_value + new_value
if prop_name in ("maxLength", "maximum", "exclusiveMaximum"): if prop_name in ("maxLength", "maximum", "exclusiveMaximum"):
return old_value if old_value > new_value else new_value return old_value if old_value < new_value else new_value
if prop_name in ("minLength", "minimum", "exclusiveMinimum"): if prop_name in ("minLength", "minimum", "exclusiveMinimum"):
return old_value if old_value < new_value else new_value return old_value if old_value > new_value else new_value
if prop_name == "properties": if prop_name == "properties":
for key, value in new_value.items(): for key, value in new_value.items():

View File

@@ -117,8 +117,8 @@ class TestAllOfTypeParser(TestCase):
) )
self.assertEqual(type_parsing, str) self.assertEqual(type_parsing, str)
self.assertEqual(type_validator["max_length"], 11) self.assertEqual(type_validator["max_length"], 4)
self.assertEqual(type_validator["min_length"], 1) self.assertEqual(type_validator["min_length"], 2)
def test_all_of_type_parser_in_fields(self): def test_all_of_type_parser_in_fields(self):
""" """
@@ -138,8 +138,8 @@ class TestAllOfTypeParser(TestCase):
) )
self.assertEqual(type_parsing, str) self.assertEqual(type_parsing, str)
self.assertEqual(type_validator["max_length"], 11) self.assertEqual(type_validator["max_length"], 4)
self.assertEqual(type_validator["min_length"], 1) self.assertEqual(type_validator["min_length"], 2)
def test_invalid_all_of(self): def test_invalid_all_of(self):
""" """

View File

@@ -358,10 +358,13 @@ class TestSchemaConverter(TestCase):
Model = SchemaConverter.build(schema) Model = SchemaConverter.build(schema)
obj = Model( obj = Model(
name="J", name="John",
) )
self.assertEqual(obj.name, "J") self.assertEqual(obj.name, "John")
with self.assertRaises(ValueError):
Model(name="J")
with self.assertRaises(ValueError): with self.assertRaises(ValueError):
Model(name="John Invalid") Model(name="John Invalid")