From ea5eb34ed278d491e6548f2a081759990173556c Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Mon, 11 Apr 2022 11:37:53 +0200 Subject: [PATCH] Add tests for https://gitlab.com/caosdb/caosdb-server/-/issues/134 --- tests/test_issues_server.py | 58 ++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/tests/test_issues_server.py b/tests/test_issues_server.py index e9a9368..4fe81ce 100644 --- a/tests/test_issues_server.py +++ b/tests/test_issues_server.py @@ -44,7 +44,7 @@ def setup_function(function): def teardown_function(function): """Deleting entities again.""" - setup_module() + pass #setup_module() # ########################### Issue tests start here ##################### @@ -704,3 +704,59 @@ def test_issue_221(): assert r2.get_property("B").value == 7 assert r2.get_property("B").datatype == db.INTEGER assert r2.get_property("B").id == p.id + + +def test_134_1(): + """CQL: Subproperties are not recognized in list of references. + + https://gitlab.com/caosdb/caosdb-server/-/issues/134 + """ + p_lng = db.Property(name="longitude", datatype=db.DOUBLE).insert() + p_lat = db.Property(name="latitude", datatype=db.DOUBLE).insert() + rt_ev = db.RecordType(name="Event").add_property(p_lng).add_property(p_lat).insert() + p_ev = db.Property(name="events", datatype=db.LIST(rt_ev)).insert() + rt_ds = db.RecordType(name="DataSet").add_property(p_ev).insert() + + r_ev_1 = db.Record().add_parent("Event").add_property("longitude", + 0.1).add_property("latitude", + 0.1).insert() + r_ev_2 = db.Record().add_parent("Event").add_property("longitude", + 0.2).add_property("latitude", + 0.2).insert() + + r_ds = db.Record().add_parent("DataSet").add_property("events", value=[r_ev_1, r_ev_2]).insert() + + + result = db.execute_query("SELECT events.latitude FROM RECORD DataSet", + unique=True) + print(result) + assert len(result.get_property("events").value) == 2 + assert result.get_property("events").value[0].get_property("latitude").value == 0.1 + assert result.get_property("events").value[1].get_property("latitude").value == 0.2 + +def test_134_2(): + """CQL: Subproperties are not recognized in list of references. + + https://gitlab.com/caosdb/caosdb-server/-/issues/134 + """ + p_lng = db.Property(name="longitude", datatype=db.DOUBLE).insert() + p_lat = db.Property(name="latitude", datatype=db.DOUBLE).insert() + rt_ev = db.RecordType(name="Event").add_property(p_lng).add_property(p_lat).insert() + rt_ds = db.RecordType(name="DataSet").add_property(name="Event", + datatype=db.LIST(rt_ev)).insert() + + r_ev_1 = db.Record().add_parent("Event").add_property("longitude", + 0.1).add_property("latitude", + 0.1).insert() + r_ev_2 = db.Record().add_parent("Event").add_property("longitude", + 0.2).add_property("latitude", + 0.2).insert() + + r_ds = db.Record().add_parent("DataSet").add_property("Event", datatype=db.LIST(rt_ev), value=[r_ev_1, r_ev_2]).insert() + + + result = db.execute_query("SELECT Event.latitude FROM RECORD DataSet", + unique=True) + assert len(result.get_property("Event").value) == 2 + assert result.get_property("Event").value[0].get_property("latitude").value == 0.1 + assert result.get_property("Event").value[1].get_property("latitude").value == 0.2 -- GitLab