Fix mixed-line-endings --fix=... when whole file is a different ending

This commit is contained in:
Anthony Sottile 2017-09-27 07:47:24 -07:00
parent efdceb4e40
commit 76047f6eef
2 changed files with 12 additions and 1 deletions

View file

@ -55,7 +55,8 @@ def fix_filename(filename, fix):
else:
target_ending = FIX_TO_LINE_ENDING[fix]
# find if there are lines with *other* endings
del counts[target_ending]
# It's possible there's no line endings of the target type
counts.pop(target_ending, None)
other_endings = bool(sum(counts.values()))
if other_endings:
_fix(filename, contents, target_ending)

View file

@ -101,3 +101,13 @@ def test_fix_crlf(tmpdir):
assert ret == 1
assert path.read_binary() == b'foo\r\nbar\r\nbaz\r\n'
def test_fix_lf_all_crlf(tmpdir):
"""Regression test for #239"""
path = tmpdir.join('input.txt')
path.write_binary(b'foo\r\nbar\r\n')
ret = main(('--fix=lf', path.strpath))
assert ret == 1
assert path.read_binary() == b'foo\nbar\n'