From 576a27667fd3ca18a7682ce26928f813fad54c2a Mon Sep 17 00:00:00 2001 From: "Mr. Outis" Date: Fri, 24 Jan 2020 19:05:23 -0600 Subject: [PATCH] diff: fix some tests and adjust result for modify --- dvc/repo/diff.py | 11 ++++++----- tests/func/test_diff.py | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/dvc/repo/diff.py b/dvc/repo/diff.py index 499cbb002..381f779f6 100644 --- a/dvc/repo/diff.py +++ b/dvc/repo/diff.py @@ -60,13 +60,14 @@ def diff(self, a_ref="HEAD", b_ref=None, *, target=None): if not delta: return - result = {} + result = collections.defaultdict(dict) for entry in delta: - result[entry.filename] = { - "old": entry._asdict() if entry in old else {}, - "new": entry._asdict() if entry in new else {}, - } + states = result[entry.filename] + states.update( + old=states.get("old") or (entry._asdict() if entry in old else {}), + new=states.get("new") or (entry._asdict() if entry in new else {}), + ) for filename, entry in result.items(): entry.update({"diff": compare_states(entry["old"], entry["new"])}) diff --git a/tests/func/test_diff.py b/tests/func/test_diff.py index 4a26af369..9a703a5df 100644 --- a/tests/func/test_diff.py +++ b/tests/func/test_diff.py @@ -43,8 +43,8 @@ def test_modified(tmp_dir, scm, dvc): result = { "file": { "old": {"checksum": "8b04d5e3775d298e78455efc5ca404d5", "size": 6}, - "new": {}, - "diff": {"status": "deleted", "size": 6}, + "new": {"checksum": "a9f0e61a137d86aa9db53465e0801612", "size": 6}, + "diff": {"status": "modified", "size": 0}, } }