Merge pull request #341 from gimbo/improvement/mix-line-endings-reporting
Report failing filenames when --fix=no in mixed-line-endings
diff --git a/pre_commit_hooks/mixed_line_ending.py b/pre_commit_hooks/mixed_line_ending.py
index a163726..e35a65c 100644
--- a/pre_commit_hooks/mixed_line_ending.py
+++ b/pre_commit_hooks/mixed_line_ending.py
@@ -76,7 +76,12 @@
retv = 0
for filename in args.filenames:
- retv |= fix_filename(filename, args.fix)
+ if fix_filename(filename, args.fix):
+ if args.fix == 'no':
+ print('{}: mixed line endings'.format(filename))
+ else:
+ print('{}: fixed mixed line endings'.format(filename))
+ retv = 1
return retv
diff --git a/tests/mixed_line_ending_test.py b/tests/mixed_line_ending_test.py
index 23837cd..8ae9354 100644
--- a/tests/mixed_line_ending_test.py
+++ b/tests/mixed_line_ending_test.py
@@ -66,16 +66,18 @@
('--fix=lf', b'foo\nbar\nbaz\n'),
),
)
-def test_line_endings_ok(fix_option, input_s, tmpdir):
+def test_line_endings_ok(fix_option, input_s, tmpdir, capsys):
path = tmpdir.join('input.txt')
path.write_binary(input_s)
ret = main((fix_option, path.strpath))
assert ret == 0
assert path.read_binary() == input_s
+ out, _ = capsys.readouterr()
+ assert out == ''
-def test_no_fix_does_not_modify(tmpdir):
+def test_no_fix_does_not_modify(tmpdir, capsys):
path = tmpdir.join('input.txt')
contents = b'foo\r\nbar\rbaz\nwomp\n'
path.write_binary(contents)
@@ -83,15 +85,19 @@
assert ret == 1
assert path.read_binary() == contents
+ out, _ = capsys.readouterr()
+ assert out == '{}: mixed line endings\n'.format(path)
-def test_fix_lf(tmpdir):
+def test_fix_lf(tmpdir, capsys):
path = tmpdir.join('input.txt')
path.write_binary(b'foo\r\nbar\rbaz\n')
ret = main(('--fix=lf', path.strpath))
assert ret == 1
assert path.read_binary() == b'foo\nbar\nbaz\n'
+ out, _ = capsys.readouterr()
+ assert out == '{}: fixed mixed line endings\n'.format(path)
def test_fix_crlf(tmpdir):