Adding upstream version 2.2.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
18c908e4f3
commit
c0d06915b7
199 changed files with 14930 additions and 0 deletions
0
tests/meta_hooks/__init__.py
Normal file
0
tests/meta_hooks/__init__.py
Normal file
138
tests/meta_hooks/check_hooks_apply_test.py
Normal file
138
tests/meta_hooks/check_hooks_apply_test.py
Normal file
|
@ -0,0 +1,138 @@
|
|||
from pre_commit.meta_hooks import check_hooks_apply
|
||||
from testing.fixtures import add_config_to_repo
|
||||
|
||||
|
||||
def test_hook_excludes_everything(capsys, in_git_dir, mock_store_dir):
|
||||
config = {
|
||||
'repos': [
|
||||
{
|
||||
'repo': 'meta',
|
||||
'hooks': [
|
||||
{
|
||||
'id': 'check-useless-excludes',
|
||||
'exclude': '.pre-commit-config.yaml',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
add_config_to_repo(in_git_dir.strpath, config)
|
||||
|
||||
assert check_hooks_apply.main(()) == 1
|
||||
|
||||
out, _ = capsys.readouterr()
|
||||
assert 'check-useless-excludes does not apply to this repository' in out
|
||||
|
||||
|
||||
def test_hook_includes_nothing(capsys, in_git_dir, mock_store_dir):
|
||||
config = {
|
||||
'repos': [
|
||||
{
|
||||
'repo': 'meta',
|
||||
'hooks': [
|
||||
{
|
||||
'id': 'check-useless-excludes',
|
||||
'files': 'foo',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
add_config_to_repo(in_git_dir.strpath, config)
|
||||
|
||||
assert check_hooks_apply.main(()) == 1
|
||||
|
||||
out, _ = capsys.readouterr()
|
||||
assert 'check-useless-excludes does not apply to this repository' in out
|
||||
|
||||
|
||||
def test_hook_types_not_matched(capsys, in_git_dir, mock_store_dir):
|
||||
config = {
|
||||
'repos': [
|
||||
{
|
||||
'repo': 'meta',
|
||||
'hooks': [
|
||||
{
|
||||
'id': 'check-useless-excludes',
|
||||
'types': ['python'],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
add_config_to_repo(in_git_dir.strpath, config)
|
||||
|
||||
assert check_hooks_apply.main(()) == 1
|
||||
|
||||
out, _ = capsys.readouterr()
|
||||
assert 'check-useless-excludes does not apply to this repository' in out
|
||||
|
||||
|
||||
def test_hook_types_excludes_everything(capsys, in_git_dir, mock_store_dir):
|
||||
config = {
|
||||
'repos': [
|
||||
{
|
||||
'repo': 'meta',
|
||||
'hooks': [
|
||||
{
|
||||
'id': 'check-useless-excludes',
|
||||
'exclude_types': ['yaml'],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
add_config_to_repo(in_git_dir.strpath, config)
|
||||
|
||||
assert check_hooks_apply.main(()) == 1
|
||||
|
||||
out, _ = capsys.readouterr()
|
||||
assert 'check-useless-excludes does not apply to this repository' in out
|
||||
|
||||
|
||||
def test_valid_exceptions(capsys, in_git_dir, mock_store_dir):
|
||||
config = {
|
||||
'repos': [
|
||||
{
|
||||
'repo': 'local',
|
||||
'hooks': [
|
||||
# applies to a file
|
||||
{
|
||||
'id': 'check-yaml',
|
||||
'name': 'check yaml',
|
||||
'entry': './check-yaml',
|
||||
'language': 'script',
|
||||
'files': r'\.yaml$',
|
||||
},
|
||||
# Should not be reported as an error due to language: fail
|
||||
{
|
||||
'id': 'changelogs-rst',
|
||||
'name': 'changelogs must be rst',
|
||||
'entry': 'changelog filenames must end in .rst',
|
||||
'language': 'fail',
|
||||
'files': r'changelog/.*(?<!\.rst)$',
|
||||
},
|
||||
# Should not be reported as an error due to always_run
|
||||
{
|
||||
'id': 'i-always-run',
|
||||
'name': 'make check',
|
||||
'entry': 'make check',
|
||||
'language': 'system',
|
||||
'files': '^$',
|
||||
'always_run': True,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
add_config_to_repo(in_git_dir.strpath, config)
|
||||
|
||||
assert check_hooks_apply.main(()) == 0
|
||||
|
||||
out, _ = capsys.readouterr()
|
||||
assert out == ''
|
115
tests/meta_hooks/check_useless_excludes_test.py
Normal file
115
tests/meta_hooks/check_useless_excludes_test.py
Normal file
|
@ -0,0 +1,115 @@
|
|||
from pre_commit.meta_hooks import check_useless_excludes
|
||||
from testing.fixtures import add_config_to_repo
|
||||
|
||||
|
||||
def test_useless_exclude_global(capsys, in_git_dir):
|
||||
config = {
|
||||
'exclude': 'foo',
|
||||
'repos': [
|
||||
{
|
||||
'repo': 'meta',
|
||||
'hooks': [{'id': 'check-useless-excludes'}],
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
add_config_to_repo(in_git_dir.strpath, config)
|
||||
|
||||
assert check_useless_excludes.main(()) == 1
|
||||
|
||||
out, _ = capsys.readouterr()
|
||||
out = out.strip()
|
||||
assert "The global exclude pattern 'foo' does not match any files" == out
|
||||
|
||||
|
||||
def test_useless_exclude_for_hook(capsys, in_git_dir):
|
||||
config = {
|
||||
'repos': [
|
||||
{
|
||||
'repo': 'meta',
|
||||
'hooks': [{'id': 'check-useless-excludes', 'exclude': 'foo'}],
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
add_config_to_repo(in_git_dir.strpath, config)
|
||||
|
||||
assert check_useless_excludes.main(()) == 1
|
||||
|
||||
out, _ = capsys.readouterr()
|
||||
out = out.strip()
|
||||
expected = (
|
||||
"The exclude pattern 'foo' for check-useless-excludes "
|
||||
'does not match any files'
|
||||
)
|
||||
assert expected == out
|
||||
|
||||
|
||||
def test_useless_exclude_with_types_filter(capsys, in_git_dir):
|
||||
config = {
|
||||
'repos': [
|
||||
{
|
||||
'repo': 'meta',
|
||||
'hooks': [
|
||||
{
|
||||
'id': 'check-useless-excludes',
|
||||
'exclude': '.pre-commit-config.yaml',
|
||||
'types': ['python'],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
add_config_to_repo(in_git_dir.strpath, config)
|
||||
|
||||
assert check_useless_excludes.main(()) == 1
|
||||
|
||||
out, _ = capsys.readouterr()
|
||||
out = out.strip()
|
||||
expected = (
|
||||
"The exclude pattern '.pre-commit-config.yaml' for "
|
||||
'check-useless-excludes does not match any files'
|
||||
)
|
||||
assert expected == out
|
||||
|
||||
|
||||
def test_no_excludes(capsys, in_git_dir):
|
||||
config = {
|
||||
'repos': [
|
||||
{
|
||||
'repo': 'meta',
|
||||
'hooks': [{'id': 'check-useless-excludes'}],
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
add_config_to_repo(in_git_dir.strpath, config)
|
||||
|
||||
assert check_useless_excludes.main(()) == 0
|
||||
|
||||
out, _ = capsys.readouterr()
|
||||
assert out == ''
|
||||
|
||||
|
||||
def test_valid_exclude(capsys, in_git_dir):
|
||||
config = {
|
||||
'repos': [
|
||||
{
|
||||
'repo': 'meta',
|
||||
'hooks': [
|
||||
{
|
||||
'id': 'check-useless-excludes',
|
||||
'exclude': '.pre-commit-config.yaml',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
add_config_to_repo(in_git_dir.strpath, config)
|
||||
|
||||
assert check_useless_excludes.main(()) == 0
|
||||
|
||||
out, _ = capsys.readouterr()
|
||||
assert out == ''
|
6
tests/meta_hooks/identity_test.py
Normal file
6
tests/meta_hooks/identity_test.py
Normal file
|
@ -0,0 +1,6 @@
|
|||
from pre_commit.meta_hooks import identity
|
||||
|
||||
|
||||
def test_identity(cap_out):
|
||||
assert not identity.main(('a', 'b', 'c'))
|
||||
assert cap_out.get() == 'a\nb\nc\n'
|
Loading…
Add table
Add a link
Reference in a new issue