diff --git a/tests/test_query_version.py b/tests/test_query_version.py index fd781b03e2ce4e1e92b8fe347feffc982466991f..495fd0c31a87ca054376e30b1748c5ed2ccc8076 100644 --- a/tests/test_query_version.py +++ b/tests/test_query_version.py @@ -26,11 +26,15 @@ import caosdb as db from caosdb import execute_query as query CONTAINER = db.Container() +NAME_PROPERTY = db.Property("name").retrieve() TEST_PROP_TEXT = db.Property("TestPropertyText", datatype=db.TEXT) TEST_PROP_DOUBLE = db.Property("TestPropertyDouble", datatype=db.DOUBLE) TEST_PROP_INTEGER = db.Property("TestPropertyInteger", datatype=db.INTEGER) TEST_PROP_DATETIME = db.Property("TestPropertyDatetime", datatype=db.DATETIME) TEST_PROP_DATE = db.Property("TestPropertyDate", datatype=db.DATETIME) +TEST_PROP_BOOLEAN = db.Property("TestPropertyBoolean", datatype=db.BOOLEAN) +TEST_PROP_NAME = db.Property("TestPropertyName", + datatype=db.TEXT).add_parent(NAME_PROPERTY) TEST_REF_RT = db.RecordType("TestRefRecordType") TEST_REF_1 = db.Record("TestRef1", description="ref1").add_parent(TEST_REF_RT) @@ -54,7 +58,12 @@ TEST_REC_1 = db.Record( TEST_PROP_DATE, "2021-12").add_property( TEST_REF_RT, - TEST_REF_1) + TEST_REF_1).add_property( + TEST_PROP_BOOLEAN, + True).add_property( + TEST_PROP_NAME, + "Alias1") + TEST_PROP_TEXT_2 = db.Property("TestPropertyText2", datatype=db.TEXT) TEST_BACKREF_RT = db.RecordType("TestBackRefRecordType") @@ -82,6 +91,7 @@ def setup_module(): TEST_PROP_INTEGER, TEST_PROP_DATETIME, TEST_PROP_DATE, TEST_REF_RT, TEST_REF_1, TEST_REF_2, TEST_REF_3, TEST_BACKREF_RT, TEST_BACKREF_0, TEST_PROP_TEXT_2, + TEST_PROP_BOOLEAN, TEST_PROP_NAME, ]).insert() CONTAINER.append(TEST_BACKREF_1) TEST_BACKREF_1.add_property( @@ -96,6 +106,8 @@ def setup_module(): TEST_REC_1.get_property(TEST_PROP_DATETIME).value = "2022-12-24T20:15:00" TEST_REC_1.get_property(TEST_PROP_DATE).value = "2022-12" TEST_REC_1.get_property(TEST_REF_RT).value = TEST_REF_2 + TEST_REC_1.get_property(TEST_PROP_NAME).value = "Alias2" + TEST_REC_1.get_property(TEST_PROP_BOOLEAN).value = False TEST_REC_1.update() CONTAINER.append(TEST_BACKREF_2) @@ -110,6 +122,8 @@ def setup_module(): TEST_REC_1.get_property(TEST_PROP_DATETIME).value = "2023-12-24T20:15:00" TEST_REC_1.get_property(TEST_PROP_DATE).value = "2023-12" TEST_REC_1.get_property(TEST_REF_RT).value = TEST_REF_3 + TEST_REC_1.get_property(TEST_PROP_NAME).value = "Alias3" + TEST_REC_1.get_property(TEST_PROP_BOOLEAN).value = True TEST_REC_1.update() CONTAINER.append(TEST_BACKREF_3) @@ -248,7 +262,6 @@ def test_find_any_version_of_entity_by_name(): assert set(["v3", "v2", "v1"]) == set([r.description for r in result]) - def test_find_any_version_of_record_by_name(): result = query("FIND ANY VERSION OF RECORD TestRecord1") assert len(result) == 3 @@ -300,6 +313,45 @@ def test_find_any_version_of_record_with_simple_pov_text_filter(): assert result[0].description == "v1" +def test_find_any_version_of_record_with_simple_pov_name_filter(): + result = query("FIND ANY VERSION OF RECORD WITH TestPropertyName") + assert len(result) == 3 + assert set(["v3", "v2", "v1"]) == set([r.description for r in result]) + + result = query("FIND ANY VERSION OF RECORD WITH TestPropertyName = Alias3") + assert len(result) == 1 + assert result[0].description == "v3" + + result = query("FIND ANY VERSION OF RECORD WITH TestPropertyName = Alias2") + assert len(result) == 1 + assert result[0].description == "v2" + + result = query("FIND ANY VERSION OF RECORD WITH TestPropertyName = Alias1") + assert len(result) == 1 + assert result[0].description == "v1" + + +def test_find_any_version_of_record_with_simple_pov_boolean_filter(): + result = query("FIND ANY VERSION OF RECORD WITH TestPropertyBoolean") + assert len(result) == 3 + assert set(["v3", "v2", "v1"]) == set([r.description for r in result]) + + result = query( + "FIND ANY VERSION OF RECORD WITH TestPropertyBoolean = TRUE AND TestPropertyText = val3") + assert len(result) == 1 + assert result[0].description == "v3" + + result = query( + "FIND ANY VERSION OF RECORD WITH TestPropertyBoolean = FALSE") + assert len(result) == 1 + assert result[0].description == "v2" + + result = query( + "FIND ANY VERSION OF RECORD WITH TestPropertyBoolean = TRUE AND TestPropertyText = val1") + assert len(result) == 1 + assert result[0].description == "v1" + + def test_find_any_version_of_record_with_simple_pov_double_filter(): result = query("FIND ANY VERSION OF RECORD WITH TestPropertyDouble") assert len(result) == 3 diff --git a/tests/test_version.py b/tests/test_version.py index 0d96aa012750ed880db91f365db25194243eb4a2..ce3c164942b843cd7f9750acf74a6e64d7d33f5a 100644 --- a/tests/test_version.py +++ b/tests/test_version.py @@ -123,7 +123,10 @@ def test_update_parent(): assert len(c.execute_query("FIND TestRTParent2")) == 2 assert c.execute_query("FIND TestRTChild", unique=True).id == rt.id - rt_head = c.Container().retrieve(query=str(rt.id), sync=False, flags={"cache": "false"})[0] + rt_head = c.Container().retrieve( + query=str( + rt.id), sync=False, flags={ + "cache": "false"})[0] rt_v1 = c.Container().retrieve(query=str(rt.id) + "@" + first_version.id, sync=False, flags={"cache": "false"})[0] rt_v2 = c.Container().retrieve(query=str(rt.id) + "@" + second_version.id, @@ -427,8 +430,6 @@ def test_bug_parent_name_in_old_version(): assert [OLD_NAME] == [p.name for p in rec_v1.get_parents()] - - def test_reference_deleted_in_old_version(): ref_rt = insertion("TestReferencedObject") rt = insertion("TestRT")