From 4b20c8abe56bd1c3779dcd905688ec6bfff1da27 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Wed, 18 Oct 2023 17:14:53 +0200
Subject: [PATCH] TST: add test for linkahead-server#323

---
 tests/test_query.py | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/tests/test_query.py b/tests/test_query.py
index 1a06c08..72fc01c 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
-- 
GitLab