Merge pull request #933 from jessebona/patch-1

Fix crash on `pre-commit migrate-config` when configuration is empty
This commit is contained in:
Anthony Sottile 2019-02-01 17:31:38 -08:00 committed by GitHub
commit 7e2ad215c2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 1 deletions

View file

@ -21,7 +21,8 @@ def _migrate_map(contents):
# Find the first non-header line
lines = contents.splitlines(True)
i = 0
while _is_header_line(lines[i]):
# Only loop on non empty configuration file
while i < len(lines) and _is_header_line(lines[i]):
i += 1
header = ''.join(lines[:i])

View file

@ -147,3 +147,13 @@ def test_migrate_config_sha_to_rev(tmpdir):
' rev: v1.2.0\n'
' hooks: []\n'
)
@pytest.mark.parametrize('contents', ('', '\n'))
def test_empty_configuration_file_user_error(tmpdir, contents):
cfg = tmpdir.join(C.CONFIG_FILE)
cfg.write(contents)
with tmpdir.as_cwd():
assert not migrate_config(C.CONFIG_FILE)
# even though the config is invalid, this should be a noop
assert cfg.read() == contents