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