mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-01-13 12:30:08 -06:00
Don't stash with --all-files. Closes #68.
This commit is contained in:
@@ -234,7 +234,7 @@ def run(runner, args, write=sys.stdout.write):
|
||||
logger.addHandler(LoggingHandler(args.color, write=write))
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
if args.no_stash:
|
||||
if args.no_stash or args.all_files:
|
||||
ctx = noop_context()
|
||||
else:
|
||||
ctx = staged_files_only(runner.cmd_runner)
|
||||
|
||||
@@ -25,7 +25,7 @@ def run(argv):
|
||||
run_parser.add_argument('hook', nargs='?', help='A single hook-id to run')
|
||||
run_parser.add_argument(
|
||||
'--all-files', '-a', action='store_true', default=False,
|
||||
help='Run on all the files in the repo.',
|
||||
help='Run on all the files in the repo. Implies --no-stash.',
|
||||
)
|
||||
run_parser.add_argument(
|
||||
'--color', default='auto', type=color.use_color,
|
||||
|
||||
@@ -252,18 +252,26 @@ def test_run(repo_with_passing_hook, options, outputs, expected_ret, stage):
|
||||
_test_run(repo_with_passing_hook, options, outputs, expected_ret, stage)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('no_stash', (True, False))
|
||||
def test_no_stash(repo_with_passing_hook, no_stash):
|
||||
@pytest.mark.parametrize(
|
||||
('no_stash', 'all_files', 'expect_stash'),
|
||||
(
|
||||
(True, True, False),
|
||||
(True, False, False),
|
||||
(False, True, False),
|
||||
(False, False, True),
|
||||
),
|
||||
)
|
||||
def test_no_stash(repo_with_passing_hook, no_stash, all_files, expect_stash):
|
||||
stage_a_file()
|
||||
# Make unstaged changes
|
||||
with open('foo.py', 'w') as foo_file:
|
||||
foo_file.write('import os\n')
|
||||
|
||||
args = _get_opts(no_stash=no_stash)
|
||||
args = _get_opts(no_stash=no_stash, all_files=all_files)
|
||||
ret, printed = _do_run(repo_with_passing_hook, args)
|
||||
assert ret == 0
|
||||
warning_msg = '[WARNING] Unstaged files detected.'
|
||||
if no_stash:
|
||||
assert warning_msg not in printed
|
||||
else:
|
||||
if expect_stash:
|
||||
assert warning_msg in printed
|
||||
else:
|
||||
assert warning_msg not in printed
|
||||
|
||||
Reference in New Issue
Block a user