Don't stash with --all-files. Closes #68.

This commit is contained in:
Anthony Sottile
2014-04-13 20:04:58 -07:00
parent 8a8b2241a6
commit 3e2b1862ad
3 changed files with 16 additions and 8 deletions

View File

@@ -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)

View File

@@ -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,

View File

@@ -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