diff --git a/unittests/test_apiutils.py b/unittests/test_apiutils.py index 0294646f6c526230a8e9fb722d56aa23a8f9285c..f815fcdc28449bc40127efae0c9a75de24f5df3e 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