mirror of
https://github.com/nix-community/disko.git
synced 2026-01-19 12:42:53 +01:00
138 lines
2.6 KiB
Python
138 lines
2.6 KiB
Python
from disko_lib.dict_diff import dict_diff
|
|
|
|
|
|
def test_dict_diff_basic() -> None:
|
|
left = {
|
|
"a": 1,
|
|
"b": 2,
|
|
"c": 3,
|
|
"d": 4,
|
|
}
|
|
right = {
|
|
"a": 1,
|
|
"b": 3,
|
|
"c": 4,
|
|
"e": 5,
|
|
}
|
|
assert dict_diff(left, right) == {
|
|
"b": 3,
|
|
"c": 4,
|
|
"d": None,
|
|
"e": 5,
|
|
}
|
|
assert dict_diff(right, left) == {
|
|
"b": 2,
|
|
"c": 3,
|
|
"d": 4,
|
|
"e": None,
|
|
}
|
|
assert dict_diff(left, left) == {}
|
|
assert dict_diff(right, right) == {}
|
|
assert dict_diff({}, {}) == {}
|
|
assert dict_diff(left, {}) == {
|
|
"a": None,
|
|
"b": None,
|
|
"c": None,
|
|
"d": None,
|
|
}
|
|
assert dict_diff({}, right) == right
|
|
|
|
|
|
def test_dict_diff_arrays() -> None:
|
|
left = {
|
|
"a": [1, 2, 3],
|
|
"b": [4, 5, 6],
|
|
"c": [7, 8, 9],
|
|
}
|
|
right = {
|
|
"a": [1, 2, 3],
|
|
"b": [4, 5, 7],
|
|
"c": [7, 8, 9],
|
|
"d": [10, 11, 12],
|
|
}
|
|
assert dict_diff(left, right) == {
|
|
"b": [4, 5, 7],
|
|
"d": [10, 11, 12],
|
|
}
|
|
assert dict_diff(right, left) == {
|
|
"b": [4, 5, 6],
|
|
"d": None,
|
|
}
|
|
assert dict_diff(left, left) == {}
|
|
assert dict_diff(right, right) == {}
|
|
assert dict_diff(left, {}) == {
|
|
"a": None,
|
|
"b": None,
|
|
"c": None,
|
|
}
|
|
assert dict_diff({}, right) == right
|
|
|
|
|
|
def test_dict_diff_nested() -> None:
|
|
left = {
|
|
"a": {
|
|
"b": {
|
|
"c": 1,
|
|
"d": 2,
|
|
},
|
|
"e": 3,
|
|
"f": 4,
|
|
},
|
|
"g": {
|
|
"h": 4,
|
|
},
|
|
"k": {
|
|
"l": {
|
|
"m": 5,
|
|
},
|
|
},
|
|
}
|
|
right = {
|
|
"a": {
|
|
"b": {
|
|
"c": 1,
|
|
"d": 3,
|
|
},
|
|
"e": 3,
|
|
},
|
|
"g": {
|
|
"h": 4,
|
|
"i": 5,
|
|
},
|
|
}
|
|
assert dict_diff(left, right) == {
|
|
"a": {
|
|
"b": {
|
|
"d": 3,
|
|
},
|
|
"f": None,
|
|
},
|
|
"g": {
|
|
"i": 5,
|
|
},
|
|
"k": None,
|
|
}
|
|
assert dict_diff(right, left) == {
|
|
"a": {
|
|
"b": {
|
|
"d": 2,
|
|
},
|
|
"f": 4,
|
|
},
|
|
"g": {
|
|
"i": None,
|
|
},
|
|
"k": {
|
|
"l": {
|
|
"m": 5,
|
|
},
|
|
},
|
|
}
|
|
assert dict_diff(left, left) == {}
|
|
assert dict_diff(right, right) == {}
|
|
assert dict_diff(left, {}) == {
|
|
"a": None,
|
|
"g": None,
|
|
"k": None,
|
|
}
|
|
assert dict_diff({}, right) == right
|