mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-01-14 21:10:27 -06:00
Merge pull request #1341 from particledecay/catch_commit-msg_missing_arg
Detect missing arg for prepare-commit-msg and commit-msg
This commit is contained in:
@@ -306,6 +306,15 @@ def run(
|
||||
f'`git add {config_file}` to fix this.',
|
||||
)
|
||||
return 1
|
||||
if (
|
||||
args.hook_stage in {'prepare-commit-msg', 'commit-msg'} and
|
||||
not args.commit_msg_filename
|
||||
):
|
||||
logger.error(
|
||||
f'`--commit-msg-filename` is required for '
|
||||
f'`--hook-stage {args.hook_stage}`',
|
||||
)
|
||||
return 1
|
||||
|
||||
# Expose origin / source as environment variables for hooks to consume
|
||||
if args.origin and args.source:
|
||||
|
||||
@@ -663,12 +663,7 @@ def test_stages(cap_out, store, repo_with_passing_hook):
|
||||
'language': 'pygrep',
|
||||
'stages': [stage],
|
||||
}
|
||||
for i, stage in enumerate(
|
||||
(
|
||||
'commit', 'push', 'manual', 'prepare-commit-msg',
|
||||
'commit-msg',
|
||||
), 1,
|
||||
)
|
||||
for i, stage in enumerate(('commit', 'push', 'manual'), 1)
|
||||
],
|
||||
}
|
||||
add_config_to_repo(repo_with_passing_hook, config)
|
||||
@@ -686,8 +681,6 @@ def test_stages(cap_out, store, repo_with_passing_hook):
|
||||
assert _run_for_stage('commit').startswith(b'hook 1...')
|
||||
assert _run_for_stage('push').startswith(b'hook 2...')
|
||||
assert _run_for_stage('manual').startswith(b'hook 3...')
|
||||
assert _run_for_stage('prepare-commit-msg').startswith(b'hook 4...')
|
||||
assert _run_for_stage('commit-msg').startswith(b'hook 5...')
|
||||
|
||||
|
||||
def test_commit_msg_hook(cap_out, store, commit_msg_repo):
|
||||
@@ -819,6 +812,16 @@ def test_error_with_unstaged_config(cap_out, store, modified_config_repo):
|
||||
assert ret == 1
|
||||
|
||||
|
||||
def test_commit_msg_missing_filename(cap_out, store, repo_with_passing_hook):
|
||||
args = run_opts(hook_stage='commit-msg')
|
||||
ret, printed = _do_run(cap_out, store, repo_with_passing_hook, args)
|
||||
assert ret == 1
|
||||
assert printed == (
|
||||
b'[ERROR] `--commit-msg-filename` is required for '
|
||||
b'`--hook-stage commit-msg`\n'
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
'opts', (run_opts(all_files=True), run_opts(files=[C.CONFIG_FILE])),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user