Skip to content

Commit 7102e0c

Browse files
author
Daniel Gallagher
committed
file-contents-sorter should add newline at end of files missing newlines
Make an explicit 'else' path for readability
1 parent 5dd1819 commit 7102e0c

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

pre_commit_hooks/file_contents_sorter.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,19 @@
1818

1919

2020
def sort_file_contents(f):
21-
before = [line.strip(b'\n\r') for line in f if line.strip()]
22-
after = sorted(before)
23-
24-
if before == after:
25-
return PASS
21+
before = list(f)
22+
after = sorted([line.strip(b'\n\r') for line in before if line.strip()])
2623

24+
before_string = b''.join(before)
2725
after_string = b'\n'.join(after) + b'\n'
2826

29-
f.seek(0)
30-
f.write(after_string)
31-
f.truncate()
32-
return FAIL
27+
if before_string == after_string:
28+
return PASS
29+
else:
30+
f.seek(0)
31+
f.write(after_string)
32+
f.truncate()
33+
return FAIL
3334

3435

3536
def main(argv=None):

tests/file_contents_sorter_test.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,18 @@
88
@pytest.mark.parametrize(
99
('input_s', 'expected_retval', 'output'),
1010
(
11-
(b'', PASS, b''),
11+
(b'', FAIL, b'\n'),
1212
(b'lonesome\n', PASS, b'lonesome\n'),
13-
(b'missing_newline', PASS, b'missing_newline'),
13+
(b'missing_newline', FAIL, b'missing_newline\n'),
1414
(b'newline\nmissing', FAIL, b'missing\nnewline\n'),
15-
(b'missing\nnewline', PASS, b'missing\nnewline'),
15+
(b'missing\nnewline', FAIL, b'missing\nnewline\n'),
1616
(b'alpha\nbeta\n', PASS, b'alpha\nbeta\n'),
1717
(b'beta\nalpha\n', FAIL, b'alpha\nbeta\n'),
1818
(b'C\nc\n', PASS, b'C\nc\n'),
1919
(b'c\nC\n', FAIL, b'C\nc\n'),
2020
(b'mag ical \n tre vor\n', FAIL, b' tre vor\nmag ical \n'),
2121
(b'@\n-\n_\n#\n', FAIL, b'#\n-\n@\n_\n'),
22-
(b'extra\n\n\nwhitespace\n', PASS, b'extra\n\n\nwhitespace\n'),
22+
(b'extra\n\n\nwhitespace\n', FAIL, b'extra\nwhitespace\n'),
2323
(b'whitespace\n\n\nextra\n', FAIL, b'extra\nwhitespace\n'),
2424
)
2525
)

0 commit comments

Comments
 (0)