Merge pull request #415 from barakreif/fix-requirements-fixer-curruption

add new line after reading requirements file
This commit is contained in:
Anthony Sottile 2019-09-28 12:19:54 -07:00 committed by GitHub
commit 8884b6365b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 1 deletions

View file

@ -40,11 +40,16 @@ class Requirement(object):
def fix_requirements(f): # type: (IO[bytes]) -> int
requirements = [] # type: List[Requirement]
before = tuple(f)
before = list(f)
after = [] # type: List[bytes]
before_string = b''.join(before)
# adds new line in case one is missing
# AND a change to the requirements file is needed regardless:
if before and not before[-1].endswith(b'\n'):
before[-1] += b'\n'
# If the file is empty (i.e. only whitespace/newlines) exit early
if before_string.strip() == b'':
return PASS

View file

@ -15,6 +15,9 @@ from pre_commit_hooks.requirements_txt_fixer import Requirement
(b'foo\n# comment at end\n', PASS, b'foo\n# comment at end\n'),
(b'foo\nbar\n', FAIL, b'bar\nfoo\n'),
(b'bar\nfoo\n', PASS, b'bar\nfoo\n'),
(b'a\nc\nb\n', FAIL, b'a\nb\nc\n'),
(b'a\nc\nb', FAIL, b'a\nb\nc\n'),
(b'a\nb\nc', FAIL, b'a\nb\nc\n'),
(
b'#comment1\nfoo\n#comment2\nbar\n',
FAIL,