From 1495fad31cd26d0dfcfecd5026b232c658f546e6 Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Sat, 7 Oct 2023 00:34:46 +0200 Subject: [PATCH] TST: Add test for linkahead-server#237 --- tests/test_issues_server.py | 4 ++-- tests/test_messages.py | 2 ++ tests/test_query.py | 40 +++++++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 2 deletions(-) diff --git a/tests/test_issues_server.py b/tests/test_issues_server.py index 4c4df4d..e231428 100644 --- a/tests/test_issues_server.py +++ b/tests/test_issues_server.py @@ -1444,7 +1444,7 @@ def test_235_long_name(): try: rt1.insert() except Exception as exc: - assert type(exc) is not db.HTTPServerError + assert not isinstance(exc, db.HTTPServerError) # TODO more specific error should be asserted rt2 = db.RecordType(name="Short") @@ -1453,5 +1453,5 @@ def test_235_long_name(): try: rt2.update() except Exception as exc: - assert type(exc) is not db.HTTPServerError + assert not isinstance(exc, db.HTTPServerError) # TODO more specific error should be asserted diff --git a/tests/test_messages.py b/tests/test_messages.py index d1522d9..7943042 100644 --- a/tests/test_messages.py +++ b/tests/test_messages.py @@ -28,6 +28,7 @@ import caosdb as db + def test_messages_dict_behavior(): from caosdb.common.models import Message, Messages @@ -71,6 +72,7 @@ def test_messages_dict_behavior(): msgs["HelloWorld"] = "Hello!" assert msgs["HelloWorld"] == "Hello!" + def test_info(): a = str(db.Info()) assert a.startswith("Connection to") diff --git a/tests/test_query.py b/tests/test_query.py index c9a1fa6..81e1501 100644 --- a/tests/test_query.py +++ b/tests/test_query.py @@ -1411,3 +1411,43 @@ def test_query_paging(): for entity in page: assert entity.description is not None # don't: entity.update() + + +def test_greatest_smallest_id(): + rt1 = db.RecordType("TestRT1").insert() + rt2 = db.RecordType("TestRT2").insert() + + # assumptions + assert rt1.id < rt2.id + + # actual testing + assert db.execute_query( + "FIND RECORDTYPE Test* WITH ID>99 AND THE SMALLEST ID", + unique=True).id == rt1.id + assert db.execute_query("FIND RECORDTYPE Test* WITH THE GREATEST ID", unique=True).id == rt2.id + + assert db.execute_query("FIND ENTITY Test* WITH THE SMALLEST ID", unique=True).id == rt1.id + assert db.execute_query("FIND ENTITY Test* WITH THE GREATEST ID", unique=True).id == rt2.id + + +@mark.xfail(reason="Issue: https://gitlab.com/linkahead/linkahead-server/-/issues/237") +def test_greatest_smallest_id_over_roles(): + rt1 = db.RecordType("TestRT1").insert() + rt2 = db.RecordType("TestRT2").insert() + p1 = db.Property("TestProp1", datatype=db.TEXT).insert() + p2 = db.Property("TestProp2", datatype=db.TEXT).insert() + + # assumptions + assert rt1.id < rt2.id + assert rt2.id < p1.id + assert p1.id < p2.id + + # actual testing + assert db.execute_query("FIND RECORDTYPE WITH THE SMALLEST ID", unique=True).id == rt1.id + assert db.execute_query("FIND RECORDTYPE WITH THE GREATEST ID", unique=True).id == rt2.id + + assert db.execute_query("FIND PROPERTY WITH THE SMALLEST ID", unique=True).id == p1.id + assert db.execute_query("FIND PROPERTY WITH THE GREATEST ID", unique=True).id == p2.id + + 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 -- GitLab