mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-17 08:14:42 +04:00
refuse to migrate an invalid configuration
This commit is contained in:
parent
46f5cc9609
commit
9b8e3d082d
2 changed files with 8 additions and 3 deletions
|
|
@ -2,6 +2,7 @@ import re
|
|||
|
||||
import yaml
|
||||
|
||||
from pre_commit.clientlib import load_config
|
||||
from pre_commit.util import yaml_load
|
||||
|
||||
|
||||
|
|
@ -43,6 +44,9 @@ def _migrate_sha_to_rev(contents: str) -> str:
|
|||
|
||||
|
||||
def migrate_config(config_file: str, quiet: bool = False) -> int:
|
||||
# ensure that the configuration is a valid pre-commit configuration
|
||||
load_config(config_file)
|
||||
|
||||
with open(config_file) as f:
|
||||
orig_contents = contents = f.read()
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import pytest
|
||||
|
||||
import pre_commit.constants as C
|
||||
from pre_commit.clientlib import InvalidConfigError
|
||||
from pre_commit.commands.migrate_config import _indent
|
||||
from pre_commit.commands.migrate_config import migrate_config
|
||||
|
||||
|
|
@ -147,10 +148,10 @@ def test_migrate_config_sha_to_rev(tmpdir):
|
|||
|
||||
|
||||
@pytest.mark.parametrize('contents', ('', '\n'))
|
||||
def test_empty_configuration_file_user_error(tmpdir, contents):
|
||||
def test_migrate_config_invalid_configuration(tmpdir, contents):
|
||||
cfg = tmpdir.join(C.CONFIG_FILE)
|
||||
cfg.write(contents)
|
||||
with tmpdir.as_cwd():
|
||||
assert not migrate_config(C.CONFIG_FILE)
|
||||
with tmpdir.as_cwd(), pytest.raises(InvalidConfigError):
|
||||
migrate_config(C.CONFIG_FILE)
|
||||
# even though the config is invalid, this should be a noop
|
||||
assert cfg.read() == contents
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue