From 0fc9e968be5c0418de3d78fcf2dd5b204e069492 Mon Sep 17 00:00:00 2001 From: Alexander Schlemmer <alexander@mail-schlemmer.de> Date: Tue, 1 Feb 2022 12:39:55 +0100 Subject: [PATCH] TST: added a failing test for a possible comparison using compare_entities --- unittests/test_apiutils.py | 50 +++++++++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 6 deletions(-) diff --git a/unittests/test_apiutils.py b/unittests/test_apiutils.py index 0294646f..f815fcdc 100644 --- a/unittests/test_apiutils.py +++ b/unittests/test_apiutils.py @@ -35,6 +35,8 @@ from caosdb.apiutils import (apply_to_ids, compare_entities, create_id_query, from .test_property import testrecord +import pytest + def test_convert_object(): r2 = db.apiutils.convert_to_python_object(testrecord) @@ -201,8 +203,6 @@ def test_compare_special_properties(): setattr(r2, set_key, 1) diff_r1, diff_r2 = compare_entities(r1, r2) - print(diff_r1) - print(diff_r2) assert key not in diff_r1 assert key not in diff_r2 assert len(diff_r1["parents"]) == 0 @@ -216,10 +216,6 @@ def test_compare_special_properties(): setattr(r2, set_key, 2) diff_r1, diff_r2 = compare_entities(r1, r2) - print(r1) - print(r2) - print(diff_r1) - print(diff_r2) assert key in diff_r1 assert key in diff_r2 if key not in INTS: @@ -230,3 +226,45 @@ def test_compare_special_properties(): assert diff_r2[key] == 2 assert len(diff_r1["properties"]) == 0 assert len(diff_r2["properties"]) == 0 + + +@pytest.mark.xfail +def test_compare_properties(): + p1 = db.Property() + p2 = db.Property() + + diff_r1, diff_r2 = compare_entities(p1, p2) + assert len(diff_r1["parents"]) == 0 + assert len(diff_r2["parents"]) == 0 + assert len(diff_r1["properties"]) == 0 + assert len(diff_r2["properties"]) == 0 + + p1.importance = "SUGGESTED" + diff_r1, diff_r2 = compare_entities(p1, p2) + assert len(diff_r1["parents"]) == 0 + assert len(diff_r2["parents"]) == 0 + assert len(diff_r1["properties"]) == 0 + assert len(diff_r2["properties"]) == 0 + assert "importance" in diff_r1 + assert diff_r1["importance"] == "SUGGESTED" + + # TODO: I'm not sure why it is not like this: + # assert diff_r2["importance"] is None + # ... but: + assert "importance" not in diff_r2 + + p2.importance = "SUGGESTED" + p1.value = 42 + p2.value = 4 + + diff_r1, diff_r2 = compare_entities(p1, p2) + assert len(diff_r1["parents"]) == 0 + assert len(diff_r2["parents"]) == 0 + assert len(diff_r1["properties"]) == 0 + assert len(diff_r2["properties"]) == 0 + + # Comparing values currently does not seem to be implemented: + assert "value" in diff_r1 + assert diff_r1["value"] == 42 + assert "value" in diff_r2 + assert diff_r2["value"] == 4 -- GitLab