diff --git a/tests/test_query.py b/tests/test_query.py index 1a06c080b16fc63a5b1323ca8a6f0e7834c2648c..72fc01cca086fd6e107307c23956bf64ced85896 100644 --- a/tests/test_query.py +++ b/tests/test_query.py @@ -1453,3 +1453,18 @@ def test_greatest_smallest_id_over_roles(): assert db.execute_query("FIND ENTITY WITH THE SMALLEST ID", unique=True).id == rt1.id assert db.execute_query("FIND ENTITY WITH THE GREATEST ID", unique=True).id == p2.id + + +def test_find_id(): + """See also: https://gitlab.indiscale.com/caosdb/src/caosdb-server/-/issues/323""" + rt1 = db.RecordType("TestRT1").insert() + rt2 = db.RecordType("TestRT2").insert() + rt3 = db.RecordType("TestRT3").add_parent("TestRT2").add_property("TestRT1").insert() + + assert db.execute_query("FIND TestRT1", unique=True).id == rt1.id + assert db.execute_query(f"FIND {rt1.id}", unique=True).id == rt1.id + assert set([e.id for e in db.execute_query("FIND TestRT2")]) == set([rt2.id, rt3.id]) + assert db.execute_query("FIND TestRT2 WITH TestRT1", unique=True).id == rt3.id + assert db.execute_query("FIND TestRT3 WITH TestRT1", unique=True).id == rt3.id + assert db.execute_query(f"FIND {rt2.id} WITH TestRT1", unique=True).id == rt3.id + assert db.execute_query(f"FIND {rt3.id} WITH TestRT1", unique=True).id == rt3.id