diff --git a/tests/test_issues_server.py b/tests/test_issues_server.py index b39c8a73b23c979e3745d9249409d7ba81ddb2ec..e499e61c66890b0423475549a732e2864a3648c3 100644 --- a/tests/test_issues_server.py +++ b/tests/test_issues_server.py @@ -101,12 +101,14 @@ def test_issue_62(): # renaming has to be reflected in Test_Record and Test_Prop rec = db.execute_query("FIND Record Test_Record", unique=True) assert rec.parents[0].name == rtb.name + assert rec.get_property("Test_Prop").datatype == rtb.name prop = db.execute_query("FIND Property Test_Prop", unique=True) assert prop.datatype == rtb.name # fails; datatype not updated # Can't use Test_RTA as datatype anymore prop2 = db.Property(name="Test_Prop2", datatype="Test_RTA") - with pytest.raises(TransactionError): + with pytest.raises(TransactionError) as exc: prop2.insert() + assert "Unknown data type." in str(exc.value) def test_issue_85_a(): 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