From de7fd39a17fdf734e476e0f1dff2a9efa83690bd Mon Sep 17 00:00:00 2001
From: fspreck <f.spreckelsen@indiscale.com>
Date: Mon, 2 May 2022 08:36:52 +0200
Subject: [PATCH] TST: Add new unit tests

---
 .../json-schema-models/datamodel_name.schema.json | 12 ++++++++++++
 .../datamodel_name_wrong_type.schema.json         | 12 ++++++++++++
 unittests/test_json_schema_model_parser.py        | 15 +++++++++++++++
 3 files changed, 39 insertions(+)
 create mode 100644 unittests/json-schema-models/datamodel_name.schema.json
 create mode 100644 unittests/json-schema-models/datamodel_name_wrong_type.schema.json

diff --git a/unittests/json-schema-models/datamodel_name.schema.json b/unittests/json-schema-models/datamodel_name.schema.json
new file mode 100644
index 00000000..c0e86028
--- /dev/null
+++ b/unittests/json-schema-models/datamodel_name.schema.json
@@ -0,0 +1,12 @@
+{
+    "title": "Dataset",
+    "type": "object",
+    "properties": {
+        "name": { "type": "string", "description": "Name of this dataset" },
+        "date_time": { "type": "string", "format": "date-time" },
+        "date": { "type": "string", "format": "date" },
+        "integer": { "type": "integer", "description": "Some integer property" },
+        "boolean": { "type": "boolean" },
+        "number_prop": { "type": "number", "description": "Some float property" }
+    }
+}
diff --git a/unittests/json-schema-models/datamodel_name_wrong_type.schema.json b/unittests/json-schema-models/datamodel_name_wrong_type.schema.json
new file mode 100644
index 00000000..1988ad3d
--- /dev/null
+++ b/unittests/json-schema-models/datamodel_name_wrong_type.schema.json
@@ -0,0 +1,12 @@
+{
+    "title": "Dataset",
+    "type": "object",
+    "properties": {
+        "name": { "type": "boolean", "description": "Name of this dataset" },
+        "date_time": { "type": "string", "format": "date-time" },
+        "date": { "type": "string", "format": "date" },
+        "integer": { "type": "integer", "description": "Some integer property" },
+        "boolean": { "type": "boolean" },
+        "number_prop": { "type": "number", "description": "Some float property" }
+    }
+}
diff --git a/unittests/test_json_schema_model_parser.py b/unittests/test_json_schema_model_parser.py
index 4b44f6ef..061d9299 100644
--- a/unittests/test_json_schema_model_parser.py
+++ b/unittests/test_json_schema_model_parser.py
@@ -340,3 +340,18 @@ def test_list():
         assert model[name].name == name
         assert len(model[name].parents) == 1
         assert model[name].has_parent(model["license"])
+
+
+def test_name_property():
+    model = parse_model_from_json_schema(os.path.join(
+        FILEPATH, "datamodel_name.schema.json"))
+
+    dataset_rt = model["Dataset"]
+    assert dataset_rt.get_property("name") is None
+    assert "name" not in model
+
+    with pytest.raises(ValueError) as err:
+        broken = parse_model_from_json_schema(os.path.join(
+            FILEPATH, "datamodel_name_wrong_type.schema.json"))
+    assert str(err.value).startswith(
+        "The 'name' property of Dataset must be string-typed, otherwise it cannot be identified with CaosDB's name property.")
-- 
GitLab