Merging upstream version 2.10.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
22fa9cbff7
commit
49934447ef
17 changed files with 286 additions and 39 deletions
|
@ -166,7 +166,85 @@ def test_validate_warn_on_unknown_keys_at_top_level(tmpdir, caplog):
|
|||
]
|
||||
|
||||
|
||||
def test_validate_optional_sensible_regex(caplog):
|
||||
def test_ci_map_key_allowed_at_top_level(caplog):
|
||||
cfg = {
|
||||
'ci': {'skip': ['foo']},
|
||||
'repos': [{'repo': 'meta', 'hooks': [{'id': 'identity'}]}],
|
||||
}
|
||||
cfgv.validate(cfg, CONFIG_SCHEMA)
|
||||
assert not caplog.record_tuples
|
||||
|
||||
|
||||
def test_ci_key_must_be_map():
|
||||
with pytest.raises(cfgv.ValidationError):
|
||||
cfgv.validate({'ci': 'invalid', 'repos': []}, CONFIG_SCHEMA)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
'rev',
|
||||
(
|
||||
'v0.12.4',
|
||||
'b27f281',
|
||||
'b27f281eb9398fc8504415d7fbdabf119ea8c5e1',
|
||||
'19.10b0',
|
||||
'4.3.21-2',
|
||||
),
|
||||
)
|
||||
def test_warn_mutable_rev_ok(caplog, rev):
|
||||
config_obj = {
|
||||
'repo': 'https://gitlab.com/pycqa/flake8',
|
||||
'rev': rev,
|
||||
'hooks': [{'id': 'flake8'}],
|
||||
}
|
||||
cfgv.validate(config_obj, CONFIG_REPO_DICT)
|
||||
|
||||
assert caplog.record_tuples == []
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
'rev',
|
||||
(
|
||||
'',
|
||||
'HEAD',
|
||||
'stable',
|
||||
'master',
|
||||
'some_branch_name',
|
||||
),
|
||||
)
|
||||
def test_warn_mutable_rev_invalid(caplog, rev):
|
||||
config_obj = {
|
||||
'repo': 'https://gitlab.com/pycqa/flake8',
|
||||
'rev': rev,
|
||||
'hooks': [{'id': 'flake8'}],
|
||||
}
|
||||
cfgv.validate(config_obj, CONFIG_REPO_DICT)
|
||||
|
||||
assert caplog.record_tuples == [
|
||||
(
|
||||
'pre_commit',
|
||||
logging.WARNING,
|
||||
"The 'rev' field of repo 'https://gitlab.com/pycqa/flake8' "
|
||||
'appears to be a mutable reference (moving tag / branch). '
|
||||
'Mutable references are never updated after first install and are '
|
||||
'not supported. '
|
||||
'See https://pre-commit.com/#using-the-latest-version-for-a-repository ' # noqa: E501
|
||||
'for more details.',
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
def test_warn_mutable_rev_conditional():
|
||||
config_obj = {
|
||||
'repo': 'meta',
|
||||
'rev': '3.7.7',
|
||||
'hooks': [{'id': 'flake8'}],
|
||||
}
|
||||
|
||||
with pytest.raises(cfgv.ValidationError):
|
||||
cfgv.validate(config_obj, CONFIG_REPO_DICT)
|
||||
|
||||
|
||||
def test_validate_optional_sensible_regex_at_hook_level(caplog):
|
||||
config_obj = {
|
||||
'id': 'flake8',
|
||||
'files': 'dir/*.py',
|
||||
|
@ -183,6 +261,23 @@ def test_validate_optional_sensible_regex(caplog):
|
|||
]
|
||||
|
||||
|
||||
def test_validate_optional_sensible_regex_at_top_level(caplog):
|
||||
config_obj = {
|
||||
'files': 'dir/*.py',
|
||||
'repos': [],
|
||||
}
|
||||
cfgv.validate(config_obj, CONFIG_SCHEMA)
|
||||
|
||||
assert caplog.record_tuples == [
|
||||
(
|
||||
'pre_commit',
|
||||
logging.WARNING,
|
||||
"The top-level 'files' field is a regex, not a glob -- matching "
|
||||
"'/*' probably isn't what you want here",
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.parametrize('fn', (validate_config_main, validate_manifest_main))
|
||||
def test_mains_not_ok(tmpdir, fn):
|
||||
not_yaml = tmpdir.join('f.notyaml')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue