def test_conflict(): with pytest.raises(DictConflictException): merge({"deeper": {}}, {"deeper": { "foo": "DOH" }}, {"deeper": { "foo": "NEH" }})
def test_added_once(): assert { "ref": PR("foo") } == merge( {}, {"ref": PR("foo")}, {}, ) assert { "ref": PR("foo") } == merge( {}, {}, {"ref": PR("foo")}, )
def test_edited_once(): assert { "ref": PR("bar") } == merge( {"ref": PR("foo")}, {"ref": PR("foo")}, {"ref": PR("bar")}, ) assert { "ref": PR("bar") } == merge( {"ref": PR("foo")}, {"ref": PR("bar")}, {"ref": PR("foo")}, )
def test_not_empty_apply_diff_right(): assert { "foo": "bar", "boo": "far" } == merge({"boo": "far"}, {"boo": "far"}, { "boo": "far", "foo": "bar" })
def test_nested_apply_diff_right(): assert { "deeper": { "foo": "bar" } } == merge({"deeper": {}}, {"deeper": {}}, {"deeper": { "foo": "bar" }})
def test_nested_apply_diff_both_same(): assert { "deeper": { "foo": "bar" } } == merge({"deeper": {}}, {"deeper": { "foo": "bar" }}, {"deeper": { "foo": "bar" }})
def test_nested_apply_diff_both_different(): assert { "deeper": { "foo": "bar", "boo": "far" } } == merge({"deeper": {}}, {"deeper": { "boo": "far" }}, {"deeper": { "foo": "bar" }})
def test_not_empty_apply_diff_both_same(): assert { "foo": "bar", "boo": "far" } == merge({"boo": "far"}, { "boo": "far", "foo": "bar" }, { "boo": "far", "foo": "bar" })
def test_edit_both_different(): assert { "foo": "after", "bar": "after" } == merge( { "foo": "before", "bar": "before" }, { "foo": "after", "bar": "before" }, { "foo": "before", "bar": "after" }, )
def test_edit_nested_both_different_with_nested_pr_plus(): assert { "ref": PR("ref"), "deeper": {"ref2": PR("ref2"), "foo": "after", "bar": "after"}, } == merge( { "ref": PR("ref"), "deeper": {"ref2": PR("ref2"), "foo": "before", "bar": "before"}, }, { "ref": PR("ref"), "deeper": {"ref2": PR("ref2"), "foo": "after", "bar": "before"}, }, { "ref": PR("ref"), "deeper": {"ref2": PR("ref2"), "foo": "before", "bar": "after"}, }, )
def test_edited_twice(): with pytest.raises(DictConflictException): merge({"foo": PR("ZBRLA")}, {"foo": PR("DOH")}, {"foo": PR("NEH")})
def test_deleted_twice(): assert {} == merge( {"ref": PR("foo")}, {}, {}, )
def test_added_twice(): with pytest.raises(DictConflictException): merge({}, {"foo": PR("DOH")}, {"foo": PR("NEH")})
def test_empty(): assert {} == merge({}, {}, {})
def test_nested(): assert { "deeper": {} } == merge({"deeper": {}}, {"deeper": {}}, {"deeper": {}})
def test_empty_apply_diff_right(): assert {"foo": "bar"} == merge({}, {}, {"foo": "bar"})
def test_not_empty_deletion(): assert {} == merge({"boo": "far"}, {}, {})
def test_empty_apply_diff_both_same(): assert {"foo": "bar"} == merge({}, {"foo": "bar"}, {"foo": "bar"})
def test_edit_both_different_with_pr(): assert {"ref": PR("ref"), "foo": "after", "bar": "after"} == merge( {"ref": PR("ref"), "foo": "before", "bar": "before"}, {"ref": PR("ref"), "foo": "after", "bar": "before"}, {"ref": PR("ref"), "foo": "before", "bar": "after"}, )
def test_empty_apply_diff_both_different(): assert { "foo": "bar", "boo": "far" } == merge({}, {"boo": "far"}, {"foo": "bar"})