Print filenames in the diff

This commit is contained in:
Joey Pinhas 2019-09-24 15:42:24 -04:00
parent 7d878b55ff
commit ec6c39ee62
2 changed files with 20 additions and 9 deletions

View file

@ -1,11 +1,11 @@
from __future__ import print_function
import argparse
import difflib
import io
import json
import sys
from collections import OrderedDict
from difflib import unified_diff
from typing import List
from typing import Mapping
from typing import Optional
@ -56,11 +56,11 @@ def parse_topkeys(s): # type: (str) -> List[str]
return s.split(',')
def get_diff(source, target): # type: (str, str) -> str
def get_diff(source, target, file): # type: (str, str, str) -> str
source_lines = source.splitlines(True)
target_lines = target.splitlines(True)
diff = ''.join(difflib.unified_diff(source_lines, target_lines))
return diff
diff = unified_diff(source_lines, target_lines, fromfile=file, tofile=file)
return ''.join(diff)
def main(argv=None): # type: (Optional[Sequence[str]]) -> int
@ -129,7 +129,13 @@ def main(argv=None): # type: (Optional[Sequence[str]]) -> int
if args.autofix:
_autofix(json_file, pretty_contents)
else:
print(get_diff(''.join(contents), pretty_contents))
print(
get_diff(
''.join(contents),
pretty_contents,
json_file,
),
)
status = 1
except ValueError:

View file

@ -1,3 +1,4 @@
import os
import shutil
import pytest
@ -110,9 +111,13 @@ def test_badfile_main():
def test_diffing_output(capsys):
resource_path = get_resource_path('not_pretty_formatted_json.json')
expected_retval = 1
a = os.path.join('a', resource_path)
b = os.path.join('b', resource_path)
expected_out = '''\
--- \n+++ \n@@ -1,6 +1,9 @@
{
--- {}
+++ {}
@@ -1,6 +1,9 @@
{{
- "foo":
- "bar",
- "alist": [2, 34, 234],
@ -124,9 +129,9 @@ def test_diffing_output(capsys):
+ ],
+ "blah": null,
+ "foo": "bar"
}
}}
'''
'''.format(a, b)
expected_err = 'File {} is not pretty-formatted\n'.format(resource_path)
actual_retval = main([resource_path])