From b6210356699d6a917342bf1af1e7afcca790fdfb Mon Sep 17 00:00:00 2001
From: florian <f.spreckelsen@inidscale.com>
Date: Mon, 24 Apr 2023 11:35:32 +0200
Subject: [PATCH] TST: Finish unit test for no top-level entity

---
 src/caosadvancedtools/models/parser.py        |  2 +-
 .../datamodel_no_toplevel_entity.schema.json  |  2 +-
 unittests/test_json_schema_model_parser.py    | 23 +++++++++++++++++++
 3 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/src/caosadvancedtools/models/parser.py b/src/caosadvancedtools/models/parser.py
index 5848a5e7..6a33d5c0 100644
--- a/src/caosadvancedtools/models/parser.py
+++ b/src/caosadvancedtools/models/parser.py
@@ -693,7 +693,7 @@ class JsonSchemaParser(Parser):
                 name = self._stringify(elt["title"], context=elt)
                 self._treat_element(elt, name)
             elif "properties" in elt:
-                for key, prop in elt["properties"]:
+                for key, prop in elt["properties"].items():
                     name = self._get_name_from_property(key, prop)
                     self._treat_element(prop, name)
             else:
diff --git a/unittests/json-schema-models/datamodel_no_toplevel_entity.schema.json b/unittests/json-schema-models/datamodel_no_toplevel_entity.schema.json
index d8d0369a..3e4f1770 100644
--- a/unittests/json-schema-models/datamodel_no_toplevel_entity.schema.json
+++ b/unittests/json-schema-models/datamodel_no_toplevel_entity.schema.json
@@ -16,7 +16,7 @@
         }
     },
     "properties": {
-        {
+        "Dataset1": {
             "title": "Dataset1",
             "description": "Some description",
             "type": "object",
diff --git a/unittests/test_json_schema_model_parser.py b/unittests/test_json_schema_model_parser.py
index adc6361c..81c76cb9 100644
--- a/unittests/test_json_schema_model_parser.py
+++ b/unittests/test_json_schema_model_parser.py
@@ -361,3 +361,26 @@ def test_name_property():
 def test_no_toplevel_entity():
     model = parse_model_from_json_schema(os.path.join(
         FILEPATH, "datamodel_no_toplevel_entity.schema.json"), top_level_recordtype=False)
+
+    assert "Dataset1" in model
+    rt1 = model["Dataset1"]
+
+    assert rt1.name == "Dataset1"
+    assert rt1.description == "Some description"
+    assert len(rt1.get_properties()) == 3
+
+    assert rt1.get_property("title") is not None
+    assert rt1.get_property("campaign") is not None
+    assert rt1.get_property("number_prop") is not None
+
+    title_prop = rt1.get_property("title")
+    assert title_prop.datatype == db.TEXT
+    assert rt1.get_importance(title_prop.name) == db.OBLIGATORY
+
+    campaign_prop = rt1.get_property("campaign")
+    assert campaign_prop.datatype == db.TEXT
+    assert rt1.get_importance(campaign_prop.name) == db.RECOMMENDED
+
+    float_prop = rt1.get_property("number_prop")
+    assert float_prop.datatype == db.DOUBLE
+    assert rt1.get_importance(float_prop.name) == db.OBLIGATORY
-- 
GitLab