Merge pull request #6443 from GalaxyGorilla/json_diff_fix

tests: Fix JSON diff for nested lists
This commit is contained in:
Donald Sharp 2020-05-23 15:37:10 -04:00 committed by GitHub
commit 49a3882df1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 37 additions and 1 deletions

View File

@ -463,5 +463,39 @@ def test_json_object_asterisk_matching():
assert json_cmp(dcomplete, dsub4) is None
def test_json_list_nested_with_objects():
dcomplete = [
{
"key": 1,
"list": [
123
]
},
{
"key": 2,
"list": [
123
]
}
]
dsub1 = [
{
"key": 2,
"list": [
123
]
},
{
"key": 1,
"list": [
123
]
}
]
assert json_cmp(dcomplete, dsub1) is None
if __name__ == "__main__":
sys.exit(pytest.main())

View File

@ -173,7 +173,9 @@ def gen_json_diff_report(d1, d2, exact=False, path="> $", acc=(0, "")):
closest_diff = None
closest_idx = None
for idx1, v1 in zip(range(0, len(d1)), d1):
tmp_diff = gen_json_diff_report(v1, v2, path=add_idx(idx1))
tmp_v1 = deepcopy(v1)
tmp_v2 = deepcopy(v2)
tmp_diff = gen_json_diff_report(tmp_v1, tmp_v2, path=add_idx(idx1))
if not has_errors(tmp_diff):
found_match = True
del d1[idx1]