mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-17 08:14:42 +04:00
Simplify has_unmerged_paths
This commit is contained in:
parent
846ddeed67
commit
2e4cde9cb0
2 changed files with 5 additions and 15 deletions
|
|
@ -30,9 +30,6 @@ COLS = int(subprocess.Popen(['tput', 'cols'], stdout=subprocess.PIPE).communicat
|
|||
|
||||
PASS_FAIL_LENGTH = 6
|
||||
|
||||
# Grabbed from `git help status`
|
||||
CONFLICTING_GIT_STATUSES = set(('DD', 'AU', 'UD', 'UA', 'DU', 'AA', 'UU'))
|
||||
|
||||
|
||||
def install(runner):
|
||||
"""Install the pre-commit hooks."""
|
||||
|
|
@ -233,11 +230,8 @@ def _run_hook(runner, hook_id, args, write):
|
|||
|
||||
|
||||
def _has_unmerged_paths(runner):
|
||||
_, stdout, _ = runner.cmd_runner.run(
|
||||
['git', 'status', '--short'], retcode=None,
|
||||
)
|
||||
codes = set(line[:2] for line in stdout.splitlines())
|
||||
return codes & CONFLICTING_GIT_STATUSES > set()
|
||||
_, stdout, _ = runner.cmd_runner.run(['git', 'ls-files', '--unmerged'])
|
||||
return bool(stdout.strip())
|
||||
|
||||
|
||||
def run(runner, args, write=sys.stdout.write):
|
||||
|
|
|
|||
|
|
@ -277,14 +277,10 @@ def test_no_stash(repo_with_passing_hook, no_stash, all_files, expect_stash):
|
|||
assert warning_msg not in printed
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
('mode', 'expected'),
|
||||
[(status, True) for status in commands.CONFLICTING_GIT_STATUSES] +
|
||||
[(' A', False), (' D', False), (' M', False)]
|
||||
)
|
||||
def test_has_unmerged_paths(mode, expected):
|
||||
@pytest.mark.parametrize(('output', 'expected'), (('some', True), ('', False)))
|
||||
def test_has_unmerged_paths(output, expected):
|
||||
mock_runner = mock.Mock()
|
||||
mock_runner.cmd_runner.run.return_value = (1, mode + ' foo', '')
|
||||
mock_runner.cmd_runner.run.return_value = (1, output, '')
|
||||
assert commands._has_unmerged_paths(mock_runner) is expected
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue