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