From 66749a656c67d20890adb42c0dd4c8b8138acc82 Mon Sep 17 00:00:00 2001 From: fspreck <f.spreckelsen@indiscale.com> Date: Wed, 30 Mar 2022 15:08:29 +0200 Subject: [PATCH] ENH: Raise error when `type` is missing --- src/caosadvancedtools/models/parser.py | 4 ++++ unittests/test_json_schema_model_parser.py | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/caosadvancedtools/models/parser.py b/src/caosadvancedtools/models/parser.py index 66ea016b..fec4c34f 100644 --- a/src/caosadvancedtools/models/parser.py +++ b/src/caosadvancedtools/models/parser.py @@ -650,6 +650,10 @@ class JsonSchemaParser(Parser): force_list = False if name in self.model: return self.model[name], force_list + if "type" not in elt: + # Each element must have a specific type + raise JsonSchemaDefinitionError( + f"`type` is missing in element {name}.") if "enum" in elt: ent = self._treat_enum(elt, name) elif elt["type"] in JSON_SCHEMA_ATOMIC_TYPES: diff --git a/unittests/test_json_schema_model_parser.py b/unittests/test_json_schema_model_parser.py index 359f3c6a..4b44f6ef 100644 --- a/unittests/test_json_schema_model_parser.py +++ b/unittests/test_json_schema_model_parser.py @@ -140,7 +140,8 @@ def test_missing_property_type(): parse_model_from_json_schema( os.path.join(FILEPATH, "datamodel_missing_property_type.schema.json")) - assert "FIXME" in str(err.value) + assert "`type` is missing" in str(err.value) + def test_enum(): """Enums are represented in references to records of a specific type.""" -- GitLab