From ad0f2a8db9a9b1111705394fa6e4d632a0d8a517 Mon Sep 17 00:00:00 2001
From: fspreck <f.spreckelsen@indiscale.com>
Date: Thu, 25 May 2023 18:20:33 +0200
Subject: [PATCH] TST: Add tests for new identifiable-query quotation

---
 unittests/test_identifiable_adapters.py | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/unittests/test_identifiable_adapters.py b/unittests/test_identifiable_adapters.py
index 57f1459d..5c338f0e 100644
--- a/unittests/test_identifiable_adapters.py
+++ b/unittests/test_identifiable_adapters.py
@@ -44,7 +44,7 @@ UNITTESTDIR = Path(__file__).parent
 def test_create_query_for_identifiable():
     query = IdentifiableAdapter.create_query_for_identifiable(
         Identifiable(record_type="Person", properties={"first_name": "A", "last_name": "B"}))
-    assert query.lower() == "find record person with 'first_name'='a' and 'last_name'='b' "
+    assert query.lower() == "find record 'person' with 'first_name'='a' and 'last_name'='b' "
 
     query = IdentifiableAdapter.create_query_for_identifiable(
         Identifiable(name="A", record_type="B", properties={
@@ -56,31 +56,31 @@ def test_create_query_for_identifiable():
             "h": db.Record(id=1111),
             "i": db.File(id=1112),
             "j": [2222, db.Record(id=3333)]}))
-    assert (query == "FIND RECORD B WITH name='A' AND 'c'='c' AND 'd'='5' AND 'e'='5.5'"
+    assert (query == "FIND RECORD 'B' WITH name='A' AND 'c'='c' AND 'd'='5' AND 'e'='5.5'"
             " AND 'f'='2020-10-10T00:00:00' AND 'g'='TRUE' AND 'h'='1111' AND 'i'='1112' AND "
             "'j'='2222' AND 'j'='3333' ")
 
     # The name can be the only identifiable
     query = IdentifiableAdapter.create_query_for_identifiable(
         Identifiable(name="TestRecord", record_type="TestType"))
-    assert query.lower() == "find record testtype with name='testrecord'"
+    assert query.lower() == "find record 'testtype' with name='testrecord'"
 
     # With referencing entity (backref)
     query = IdentifiableAdapter.create_query_for_identifiable(
         Identifiable(record_type="Person", backrefs=[14433], properties={'last_name': "B"}))
-    assert query.lower() == ("find record person which is referenced by 14433 and with "
+    assert query.lower() == ("find record 'person' which is referenced by 14433 and with "
                              "'last_name'='b' ")
 
     # With two referencing entities (backref)
     query = IdentifiableAdapter.create_query_for_identifiable(
         Identifiable(record_type="Person", backrefs=[14433, 333], properties={'last_name': "B"}))
-    assert query.lower() == ("find record person which is referenced by 14433 and which is "
+    assert query.lower() == ("find record 'person' which is referenced by 14433 and which is "
                              "referenced by 333 and with 'last_name'='b' ")
 
     # With single quote in string
     query = IdentifiableAdapter.create_query_for_identifiable(
         Identifiable(record_type="Person", backrefs=[], properties={'last_name': "B'Or"}))
-    assert query == ("FIND RECORD Person WITH 'last_name'='B\\'Or' ")
+    assert query == ("FIND RECORD 'Person' WITH 'last_name'='B\\'Or' ")
 
     # With only backref
     query = IdentifiableAdapter.create_query_for_identifiable(
@@ -92,6 +92,10 @@ def test_create_query_for_identifiable():
         Identifiable(backrefs=[160], name='lo', properties={}))
     assert query == ("FIND RECORD  WHICH IS REFERENCED BY 160 AND WITH name='lo'")
 
+    query = IdentifiableAdapter.create_query_for_identifiable(
+        Identifiable(record_type="record type", name="it's weird"))
+    assert query == ("FIND RECORD 'record type' WITH name='it\\'s weird'")
+
 
 def test_load_from_yaml_file():
     ident = CaosDBIdentifiableAdapter()
-- 
GitLab