Skip to content
Snippets Groups Projects
Commit ad0f2a8d authored by Florian Spreckelsen's avatar Florian Spreckelsen
Browse files

TST: Add tests for new identifiable-query quotation

parent c98d1acf
Branches
Tags
2 merge requests!123REL: Release v0.6.0,!118f-special-chars-in-names
Pipeline #37114 passed
......@@ -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()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment