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