From ff960e9c3a16110761f25fd43ede59ebdf367a41 Mon Sep 17 00:00:00 2001
From: fspreck <f.spreckelsen@indiscale.com>
Date: Fri, 11 Mar 2022 18:00:18 +0100
Subject: [PATCH] TST: Add unit test for broken value parsing

---
 unittests/test_parser.py | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/unittests/test_parser.py b/unittests/test_parser.py
index a14cb1ab..f236035a 100644
--- a/unittests/test_parser.py
+++ b/unittests/test_parser.py
@@ -399,3 +399,42 @@ b:
 """
     entities = parse_model_from_string(model)
     assert entities["b"].value == 18
+
+
+def test_issue_72():
+    """Tests for
+    https://gitlab.indiscale.com/caosdb/src/caosdb-advanced-user-tools/-/issues/72
+
+    In some cases, faulty values would be read in for properties without a
+    secified value.
+
+    """
+    model = """
+Experiment:
+  obligatory_properties:
+    date:
+      datatype: DATETIME 
+      description: 'date of the experiment'
+    identifier:
+      datatype: TEXT 
+      description: 'identifier of the experiment'
+    temperature:
+      datatype: DOUBLE 
+      description: 'temp'
+"""
+    entities = parse_model_from_string(model)
+    assert "Experiment" in entities
+    assert "date" in entities
+    assert "identifier" in entities
+    assert "temperature" in entities
+    assert isinstance(entities["Experiment"], db.RecordType)
+
+    assert entities["Experiment"].get_property("date") is not None
+    # No value is set, so this has to be None
+    assert entities["Experiment"].get_property("date").value == None
+
+    assert entities["Experiment"].get_property("identifier") is not None
+    assert entities["Experiment"].get_property("identifier").value == None
+
+    assert entities["Experiment"].get_property("temperature") is not None
+    assert entities["Experiment"].get_property("temperature").value == None
-- 
GitLab