diff --git a/unittests/test_apiutils.py b/unittests/test_apiutils.py index f9de6d1a037667d0ead0f02439bde13ac4f14f60..155c04ce60da631f5c725be521db0881d6935522 100644 --- a/unittests/test_apiutils.py +++ b/unittests/test_apiutils.py @@ -29,7 +29,8 @@ import pytest import caosdb as db import caosdb.apiutils from caosdb.apiutils import (apply_to_ids, compare_entities, create_id_query, - empty_diff, resolve_reference, merge_entities) + empty_diff, EntityMergeConflictError, + resolve_reference, merge_entities) from caosdb.common.models import SPECIAL_ATTRIBUTES @@ -306,7 +307,7 @@ def test_merge_bug_conflict(): r3 = db.Record() r3.add_property(name="C", value=4, datatype="INTEGER") - with pytest.raises(RuntimeError) as excinfo: + with pytest.raises(EntityMergeConflictError): merge_entities(r3, r2) @@ -401,15 +402,13 @@ def test_wrong_merge_conflict_reference(): rec_a.add_property(name=title_prop.name, value="Some dataset title") # this does not compare referenced records, so it will fail - with pytest.raises(RuntimeError) as re: + with pytest.raises(EntityMergeConflictError): merge_entities(rec_a, rec_b, merge_references_with_empty_diffs=False) - assert "Merge conflict" in str(re.value) # ... as should this, of course rec_b.get_property(license_rt.name).value.name = "Another license" - with pytest.raises(RuntimeError) as re: + with pytest.raises(EntityMergeConflictError) as re: merge_entities(rec_a, rec_b) - assert "Merge conflict" in str(re.value) def test_empty_diff(): @@ -483,9 +482,8 @@ def test_force_merge(): recA = db.Record(name="A") recB = db.Record(name="B") - with pytest.raises(RuntimeError) as re: + with pytest.raises(EntityMergeConflictError): merge_entities(recA, recB) - assert "Merge conflict" in str(re.value) merge_entities(recA, recB, force=True) assert "B" == recA.name @@ -498,9 +496,8 @@ def test_force_merge(): recB = db.Record() recB.description = "something else" - with pytest.raises(RuntimeError) as re: + with pytest.raises(EntityMergeConflictError): merge_entities(recA, recB) - assert "Merge conflict" in str(re.value) merge_entities(recA, recB, force=True) assert recA.description == "something else" @@ -513,9 +510,8 @@ def test_force_merge(): recB = db.Record() recB.add_property(name="propA", value="something else") - with pytest.raises(RuntimeError) as re: + with pytest.raises(EntityMergeConflictError): merge_entities(recA, recB) - assert "Merge conflict" in str(re.value) merge_entities(recA, recB, force=True) assert recA.get_property("propA").value == "something else" @@ -539,9 +535,8 @@ def test_force_merge(): rtB = db.RecordType() rtB.add_property(name="propA", datatype=db.TEXT) - with pytest.raises(RuntimeError) as re: + with pytest.raises(EntityMergeConflictError): merge_entities(rtA, rtB) - assert "Merge conflict" in str(re.value) merge_entities(rtA, rtB, force=True) assert rtA.get_property("propA").datatype == db.TEXT @@ -554,9 +549,8 @@ def test_force_merge(): recB = db.Record() recB.add_property(name="propA", value=5, unit="cm") - with pytest.raises(RuntimeError) as re: + with pytest.raises(EntityMergeConflictError): merge_entities(recA, recB) - assert "Merge conflict" in str(re.value) merge_entities(recA, recB, force=True) assert recA.get_property("propA").unit == "cm" # unchanged