diff --git a/unittests/test_apiutils.py b/unittests/test_apiutils.py index d86b7523fd32f6ac935fc8c27bfaa4014054abbb..4d15f3b0ea69dbefc0eb07a5b5f7f942d3d08e43 100644 --- a/unittests/test_apiutils.py +++ b/unittests/test_apiutils.py @@ -393,6 +393,21 @@ def test_wrong_merge_conflict_reference(): assert rec_a.get_property(license_rt.name) is not None assert rec_a.get_property(license_rt.name).value is not None assert isinstance(rec_a.get_property(license_rt.name).value, db.Record) + assert rec_a.get_property(license_rt.name).value.name == license_rec_a.name + assert rec_a.get_property(license_rt.name).value.name == license_rec_b.name + assert rec_a.get_property("title").value == "Some dataset title" + assert rec_a.get_property("doi").value == "https://doi.org/12345.678" + + # this does not compare referenced records, so it will fail + with pytest.raises(RuntimeError) as re: + 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: + merge_entities(rec_a, rec_b) + assert "Merge conflict" in str(re.value) def test_empty_diff():