mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-17 08:14:42 +04:00
Add mechanism to skip hooks. Closes #40.
This commit is contained in:
parent
a60b3a3971
commit
744b883b01
2 changed files with 86 additions and 26 deletions
|
|
@ -201,10 +201,10 @@ def _get_opts(all_files=False, color=False, verbose=False, hook=None, no_stash=F
|
|||
)
|
||||
|
||||
|
||||
def _do_run(repo, args):
|
||||
def _do_run(repo, args, environ={}):
|
||||
runner = Runner(repo)
|
||||
write_mock = mock.Mock()
|
||||
ret = commands.run(runner, args, write=write_mock)
|
||||
ret = commands.run(runner, args, write=write_mock, environ=environ)
|
||||
printed = get_write_mock_output(write_mock)
|
||||
return ret, printed
|
||||
|
||||
|
|
@ -298,3 +298,35 @@ def test_merge_conflict_modified(in_merge_conflict):
|
|||
ret, printed = _do_run(in_merge_conflict, _get_opts())
|
||||
assert ret == 1
|
||||
assert 'Unmerged files. Resolve before committing.' in printed
|
||||
|
||||
|
||||
def test_merge_conflict_resolved(in_merge_conflict):
|
||||
local['git']['add', '.']()
|
||||
ret, printed = _do_run(in_merge_conflict, _get_opts())
|
||||
for msg in ('Checking merge-conflict files only.', 'Bash hook', 'Passed'):
|
||||
assert msg in printed
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
('environ', 'expected_output'),
|
||||
(
|
||||
({}, set([])),
|
||||
({'SKIP': ''}, set([])),
|
||||
({'SKIP': ','}, set([])),
|
||||
({'SKIP': ',foo'}, set(['foo'])),
|
||||
({'SKIP': 'foo'}, set(['foo'])),
|
||||
({'SKIP': 'foo,bar'}, set(['foo', 'bar'])),
|
||||
({'SKIP': ' foo , bar'}, set(['foo', 'bar'])),
|
||||
),
|
||||
)
|
||||
def test_get_skips(environ, expected_output):
|
||||
ret = commands._get_skips(environ)
|
||||
assert ret == expected_output
|
||||
|
||||
|
||||
def test_skip_hook(repo_with_passing_hook):
|
||||
ret, printed = _do_run(
|
||||
repo_with_passing_hook, _get_opts(), {'SKIP': 'bash_hook'},
|
||||
)
|
||||
for msg in ('Bash hook', 'Skipped'):
|
||||
assert msg in printed
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue