mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-17 08:14:42 +04:00
Uninstall restores hooks.
This commit is contained in:
parent
f4d16b9cdc
commit
0cde0fdc48
2 changed files with 25 additions and 0 deletions
|
|
@ -61,4 +61,9 @@ def uninstall(runner):
|
||||||
if os.path.exists(runner.pre_commit_path):
|
if os.path.exists(runner.pre_commit_path):
|
||||||
os.remove(runner.pre_commit_path)
|
os.remove(runner.pre_commit_path)
|
||||||
print('pre-commit uninstalled')
|
print('pre-commit uninstalled')
|
||||||
|
|
||||||
|
if os.path.exists(runner.pre_commit_legacy_path):
|
||||||
|
os.rename(runner.pre_commit_legacy_path, runner.pre_commit_path)
|
||||||
|
print('Restored previous hooks to {0}'.format(runner.pre_commit_path))
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|
|
||||||
|
|
@ -256,3 +256,23 @@ def test_install_overwrite(tmpdir_factory):
|
||||||
ret, output = _get_commit_output(tmpdir_factory)
|
ret, output = _get_commit_output(tmpdir_factory)
|
||||||
assert ret == 0
|
assert ret == 0
|
||||||
assert NORMAL_PRE_COMMIT_RUN.match(output)
|
assert NORMAL_PRE_COMMIT_RUN.match(output)
|
||||||
|
|
||||||
|
|
||||||
|
def test_uninstall_restores_legacy_hooks(tmpdir_factory):
|
||||||
|
path = make_consuming_repo(tmpdir_factory, 'script_hooks_repo')
|
||||||
|
with local.cwd(path):
|
||||||
|
runner = Runner(path)
|
||||||
|
|
||||||
|
# Write out an "old" hook
|
||||||
|
with io.open(runner.pre_commit_path, 'w') as hook_file:
|
||||||
|
hook_file.write('#!/usr/bin/env bash\necho "legacy hook"\n')
|
||||||
|
make_executable(runner.pre_commit_path)
|
||||||
|
|
||||||
|
# Now install and uninstall pre-commit
|
||||||
|
assert install(runner) == 0
|
||||||
|
assert uninstall(runner) == 0
|
||||||
|
|
||||||
|
# Make sure we installed the "old" hook correctly
|
||||||
|
ret, output = _get_commit_output(tmpdir_factory, touch_file='baz')
|
||||||
|
assert ret == 0
|
||||||
|
assert EXISTING_COMMIT_RUN.match(output)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue