Skip to content
Snippets Groups Projects
Commit 8fb519ee authored by Henrik tom Wörden's avatar Henrik tom Wörden
Browse files

MAINT: rephrase docstring and slightly change test

parent c62941cf
No related branches found
No related tags found
2 merge requests!79Release 0.10.0,!74F force merge
Pipeline #29889 passed
...@@ -387,8 +387,8 @@ def merge_entities(entity_a: Entity, entity_b: Entity, merge_references_with_emp ...@@ -387,8 +387,8 @@ def merge_entities(entity_a: Entity, entity_b: Entity, merge_references_with_emp
instead. Default is True. instead. Default is True.
force : bool, optional force : bool, optional
If True, in case `entity_a` and `entity_b` have the same properties, the If True, in case `entity_a` and `entity_b` have the same properties, the
values of `entity_b` are sued in the merge. If `False`, a RuntimeError is values of `entity_a` are replaced by those of `entity_b` in the merge.
raised instead. Default is False. If `False`, a RuntimeError is raised instead. Default is False.
Returns Returns
------- -------
......
...@@ -479,12 +479,14 @@ def test_force_merge(): ...@@ -479,12 +479,14 @@ def test_force_merge():
assert "Merge conflict" in str(re.value) assert "Merge conflict" in str(re.value)
merge_entities(recA, recB, force=True) merge_entities(recA, recB, force=True)
assert recA.name == recB.name assert "B" == recA.name
# unchanged
assert "B" == recB.name
# description overwrite # description overwrite
recA = db.Record(name="A") recA = db.Record()
recA.description = "something" recA.description = "something"
recB = db.Record(name="B") recB = db.Record()
recB.description = "something else" recB.description = "something else"
with pytest.raises(RuntimeError) as re: with pytest.raises(RuntimeError) as re:
...@@ -492,12 +494,14 @@ def test_force_merge(): ...@@ -492,12 +494,14 @@ def test_force_merge():
assert "Merge conflict" in str(re.value) assert "Merge conflict" in str(re.value)
merge_entities(recA, recB, force=True) merge_entities(recA, recB, force=True)
assert recA.description == recB.description assert recA.description == "something else"
# unchanged
assert recB.description == "something else"
# property overwrite # property overwrite
recA = db.Record(name="A") recA = db.Record()
recA.add_property(name="propA", value="something") recA.add_property(name="propA", value="something")
recB = db.Record(name="A") recB = db.Record()
recB.add_property(name="propA", value="something else") recB.add_property(name="propA", value="something else")
with pytest.raises(RuntimeError) as re: with pytest.raises(RuntimeError) as re:
...@@ -505,23 +509,25 @@ def test_force_merge(): ...@@ -505,23 +509,25 @@ def test_force_merge():
assert "Merge conflict" in str(re.value) assert "Merge conflict" in str(re.value)
merge_entities(recA, recB, force=True) merge_entities(recA, recB, force=True)
assert recA.get_property("propA").value == recB.get_property("propA").value assert recA.get_property("propA").value == "something else"
# unchanged
assert recB.get_property("propA").value == "something else"
# don't overwrite a property that's not in recB # don't remove a property that's not in recB
recA = db.Record(name="A") recA = db.Record()
recA.add_property(name="propA", value="something") recA.add_property(name="propA", value="something")
recA.add_property(name="propB", value=5.0) recA.add_property(name="propB", value=5.0)
recB = db.Record(name="A") recB = db.Record()
recB.add_property(name="propA", value="something else") recB.add_property(name="propA", value="something else")
merge_entities(recA, recB, force=True) merge_entities(recA, recB, force=True)
assert recA.get_property("propA").value == recB.get_property("propA").value assert recA.get_property("propA").value == "something else"
assert recA.get_property("propB").value == 5.0 assert recA.get_property("propB").value == 5.0
# also overwrite datatypes ... # also overwrite datatypes ...
rtA = db.RecordType(name="A") rtA = db.RecordType()
rtA.add_property(name="propA", datatype=db.INTEGER) rtA.add_property(name="propA", datatype=db.INTEGER)
rtB = db.RecordType(name="B") rtB = db.RecordType()
rtB.add_property(name="propA", datatype=db.TEXT) rtB.add_property(name="propA", datatype=db.TEXT)
with pytest.raises(RuntimeError) as re: with pytest.raises(RuntimeError) as re:
...@@ -529,18 +535,20 @@ def test_force_merge(): ...@@ -529,18 +535,20 @@ def test_force_merge():
assert "Merge conflict" in str(re.value) assert "Merge conflict" in str(re.value)
merge_entities(rtA, rtB, force=True) merge_entities(rtA, rtB, force=True)
assert rtA.get_property( assert rtA.get_property("propA").datatype == db.TEXT
"propA").datatype == rtB.get_property("propA").datatype # unchanged
assert rtB.get_property("propA").datatype == db.TEXT
# ... and units # ... and units
recA = db.Record(name="A") recA = db.Record()
recA.add_property(name="propA", value=5, unit="m") recA.add_property(name="propA", value=5, unit="m")
recB = db.Record(name="A") recB = db.Record()
recB.add_property(name="propA", value=500, unit="cm") recB.add_property(name="propA", value=5, unit="cm")
with pytest.raises(RuntimeError) as re: with pytest.raises(RuntimeError) as re:
merge_entities(recA, recB) merge_entities(recA, recB)
assert "Merge conflict" in str(re.value) assert "Merge conflict" in str(re.value)
merge_entities(recA, recB, force=True) merge_entities(recA, recB, force=True)
assert recA.get_property("propA").value == recB.get_property("propA").value assert recA.get_property("propA").unit == "cm"
assert recA.get_property("propA").unit == recB.get_property("propA").unit # unchanged
assert recB.get_property("propA").unit == "cm"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment