pre-commit/tests/meta_hooks/check_hooks_apply_test.py
2017-11-03 09:18:58 -07:00

130 lines
3.1 KiB
Python

from collections import OrderedDict
from pre_commit.meta_hooks import check_hooks_apply
from pre_commit.util import cwd
from testing.fixtures import add_config_to_repo
from testing.fixtures import git_dir
def test_hook_excludes_everything(
capsys, tempdir_factory, mock_out_store_directory,
):
config = OrderedDict((
('repo', 'meta'),
(
'hooks', (
OrderedDict((
('id', 'check-useless-excludes'),
('exclude', '.pre-commit-config.yaml'),
)),
),
),
))
repo = git_dir(tempdir_factory)
add_config_to_repo(repo, config)
with cwd(repo):
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, tempdir_factory, mock_out_store_directory,
):
config = OrderedDict((
('repo', 'meta'),
(
'hooks', (
OrderedDict((
('id', 'check-useless-excludes'),
('files', 'foo'),
)),
),
),
))
repo = git_dir(tempdir_factory)
add_config_to_repo(repo, config)
with cwd(repo):
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, tempdir_factory, mock_out_store_directory,
):
config = OrderedDict((
('repo', 'meta'),
(
'hooks', (
OrderedDict((
('id', 'check-useless-excludes'),
('types', ['python']),
)),
),
),
))
repo = git_dir(tempdir_factory)
add_config_to_repo(repo, config)
with cwd(repo):
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, tempdir_factory, mock_out_store_directory,
):
config = OrderedDict((
('repo', 'meta'),
(
'hooks', (
OrderedDict((
('id', 'check-useless-excludes'),
('exclude_types', ['yaml']),
)),
),
),
))
repo = git_dir(tempdir_factory)
add_config_to_repo(repo, config)
with cwd(repo):
assert check_hooks_apply.main(()) == 1
out, _ = capsys.readouterr()
assert 'check-useless-excludes does not apply to this repository' in out
def test_valid_includes(
capsys, tempdir_factory, mock_out_store_directory,
):
config = OrderedDict((
('repo', 'meta'),
(
'hooks', (
OrderedDict((
('id', 'check-useless-excludes'),
)),
),
),
))
repo = git_dir(tempdir_factory)
add_config_to_repo(repo, config)
with cwd(repo):
assert check_hooks_apply.main(()) == 0
out, _ = capsys.readouterr()
assert out == ''