mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-17 00:04:42 +04:00
Remove unnecessary object level at top of manifest
This commit is contained in:
parent
af7e23aae5
commit
e5f4c61608
4 changed files with 54 additions and 66 deletions
|
|
@ -1,6 +1,5 @@
|
|||
|
||||
# Hooks are set up as follows
|
||||
# hooks:
|
||||
# -
|
||||
# id: hook_id
|
||||
# name: 'Readable name'
|
||||
|
|
@ -15,15 +14,14 @@
|
|||
# # Optional, defaults to zero
|
||||
# expected_return_value: 0
|
||||
|
||||
hooks:
|
||||
-
|
||||
-
|
||||
id: my_hook
|
||||
name: My Simple Hook
|
||||
description: This is my simple hook that does blah
|
||||
entry: my-simple-hook.py
|
||||
language: python
|
||||
expected_return_value: 0
|
||||
-
|
||||
-
|
||||
id: my_grep_based_hook
|
||||
name: My Bash Based Hook
|
||||
description: This is a hook that uses grep to validate some stuff
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
|
||||
hooks:
|
||||
-
|
||||
-
|
||||
id: validate_manifest
|
||||
name: Validate Manifest
|
||||
description: This validator validates a pre-commit hooks manifest file
|
||||
|
|
|
|||
|
|
@ -11,9 +11,6 @@ class InvalidManifestError(ValueError): pass
|
|||
|
||||
|
||||
MANIFEST_JSON_SCHEMA = {
|
||||
'type': 'object',
|
||||
'properties': {
|
||||
'hooks': {
|
||||
'type': 'array',
|
||||
'minItems': 1,
|
||||
'items': {
|
||||
|
|
@ -28,14 +25,11 @@ MANIFEST_JSON_SCHEMA = {
|
|||
},
|
||||
'required': ['id', 'name', 'entry'],
|
||||
},
|
||||
},
|
||||
},
|
||||
'required': ['hooks'],
|
||||
}
|
||||
|
||||
|
||||
def additional_manifest_check(obj):
|
||||
for hook_config in obj['hooks']:
|
||||
for hook_config in obj:
|
||||
language = hook_config.get('language')
|
||||
|
||||
if language is not None and not any(
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ def print_mock():
|
|||
|
||||
def test_run_returns_1_for_non_existent_module(print_mock):
|
||||
non_existent_filename = 'file_that_does_not_exist'
|
||||
ret = run(['--filename', non_existent_filename])
|
||||
ret = run([non_existent_filename])
|
||||
assert ret == 1
|
||||
print_mock.assert_called_once_with(
|
||||
'File {0} does not exist'.format(non_existent_filename),
|
||||
|
|
@ -26,7 +26,7 @@ def test_run_returns_1_for_non_existent_module(print_mock):
|
|||
|
||||
def test_run_returns_1_for_non_yaml_file(print_mock):
|
||||
non_parseable_filename = 'tests/data/non_parseable_yaml_file.yaml'
|
||||
ret = run(['--filename', non_parseable_filename])
|
||||
ret = run([non_parseable_filename])
|
||||
assert ret == 1
|
||||
print_mock.assert_any_call(
|
||||
'File {0} is not a valid yaml file'.format(non_parseable_filename),
|
||||
|
|
@ -35,7 +35,7 @@ def test_run_returns_1_for_non_yaml_file(print_mock):
|
|||
|
||||
def test_returns_1_for_valid_yaml_file_but_invalid_manifest(print_mock):
|
||||
invalid_manifest = 'tests/data/valid_yaml_but_invalid_manifest.yaml'
|
||||
ret = run(['--filename', invalid_manifest])
|
||||
ret = run([invalid_manifest])
|
||||
assert ret == 1
|
||||
print_mock.assert_any_call(
|
||||
'File {0} is not a valid file'.format(invalid_manifest)
|
||||
|
|
@ -44,14 +44,13 @@ def test_returns_1_for_valid_yaml_file_but_invalid_manifest(print_mock):
|
|||
|
||||
def test_returns_0_for_valid_manifest():
|
||||
valid_manifest = 'example_manifest.yaml'
|
||||
ret = run(['--filename', valid_manifest])
|
||||
ret = run([valid_manifest])
|
||||
assert ret == 0
|
||||
|
||||
|
||||
def test_uses_default_manifest_file_at_root_of_git(empty_git_dir):
|
||||
local.path(C.MANIFEST_FILE).write("""
|
||||
hooks:
|
||||
-
|
||||
-
|
||||
id: foo
|
||||
name: Foo
|
||||
entry: foo
|
||||
|
|
@ -62,15 +61,13 @@ hooks:
|
|||
|
||||
def test_additional_manifest_check_raises_for_bad_language():
|
||||
with pytest.raises(InvalidManifestError):
|
||||
additional_manifest_check(
|
||||
{'hooks': [{'id': 'foo', 'language': 'not valid'}]}
|
||||
)
|
||||
additional_manifest_check([{'id': 'foo', 'language': 'not valid'}])
|
||||
|
||||
|
||||
@pytest.mark.parametrize(('obj'), (
|
||||
{'hooks': [{}]},
|
||||
{'hooks': [{'language': 'python'}]},
|
||||
{'hooks': [{'language': 'python>2.6'}]},
|
||||
[{}],
|
||||
[{'language': 'python'}],
|
||||
[{'language': 'python>2.6'}],
|
||||
))
|
||||
def test_additional_manifest_check_is_ok_with_missing_language(obj):
|
||||
additional_manifest_check(obj)
|
||||
Loading…
Add table
Add a link
Reference in a new issue