feat: validates that top level type cannot be list

This commit is contained in:
2025-11-26 10:52:50 -03:00
parent d418ad96ad
commit 40106e4765
2 changed files with 11 additions and 3 deletions

View File

@@ -138,9 +138,8 @@ class SchemaConverter:
type_value = schema.get("type")
if isinstance(type_value, list):
raise InternalAssertionException(
"SchemaConverter._get_schema_type: 'type' field should not be a list here."
" This should have been normalized earlier."
raise InvalidSchemaException(
"Invalid schema: 'type' cannot be a list at the top level", invalid_field=str(schema)
)
return type_value

View File

@@ -1047,3 +1047,12 @@ class TestSchemaConverter(TestCase):
with self.assertRaises(InvalidSchemaException):
self.converter.build_with_cache(schema)
def test_parse_list_type_root_level_throws(self):
schema = {
"title": "TestListType",
"type": ["string", "number"]
}
with self.assertRaises(InvalidSchemaException):
self.converter.build_with_cache(schema)