mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-17 08:14:42 +04:00
Simplify the install and uninstall commands and improve tests.
This commit is contained in:
parent
48bbc68b35
commit
ecdacd474b
7 changed files with 82 additions and 52 deletions
37
tests/commands_test.py
Normal file
37
tests/commands_test.py
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
|
||||
import os
|
||||
import os.path
|
||||
import pkg_resources
|
||||
import stat
|
||||
|
||||
from pre_commit.commands import install
|
||||
from pre_commit.commands import uninstall
|
||||
from pre_commit.runner import Runner
|
||||
|
||||
|
||||
def test_install_pre_commit(empty_git_dir):
|
||||
runner = Runner(empty_git_dir)
|
||||
ret = install(runner)
|
||||
assert ret == 0
|
||||
assert os.path.exists(runner.pre_commit_path)
|
||||
pre_commit_contents = open(runner.pre_commit_path).read()
|
||||
pre_commit_sh = pkg_resources.resource_filename('pre_commit', 'resources/pre-commit.sh')
|
||||
expected_contents = open(pre_commit_sh).read()
|
||||
assert pre_commit_contents == expected_contents
|
||||
stat_result = os.stat(runner.pre_commit_path)
|
||||
assert stat_result.st_mode & (stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)
|
||||
|
||||
|
||||
def test_uninstall_pre_commit_does_not_blow_up_when_not_there(empty_git_dir):
|
||||
runner = Runner(empty_git_dir)
|
||||
ret = uninstall(runner)
|
||||
assert ret == 0
|
||||
|
||||
|
||||
def test_uninstall(empty_git_dir):
|
||||
runner = Runner(empty_git_dir)
|
||||
assert not os.path.exists(runner.pre_commit_path)
|
||||
install(runner)
|
||||
assert os.path.exists(runner.pre_commit_path)
|
||||
uninstall(runner)
|
||||
assert not os.path.exists(runner.pre_commit_path)
|
||||
|
|
@ -1,7 +1,5 @@
|
|||
|
||||
import os
|
||||
import pytest
|
||||
import stat
|
||||
from plumbum import local
|
||||
|
||||
from pre_commit import git
|
||||
|
|
@ -17,32 +15,6 @@ def test_get_root(empty_git_dir):
|
|||
assert git.get_root() == empty_git_dir
|
||||
|
||||
|
||||
def test_get_pre_commit_path(empty_git_dir):
|
||||
assert git.get_pre_commit_path() == '{0}/.git/hooks/pre-commit'.format(
|
||||
empty_git_dir,
|
||||
)
|
||||
|
||||
|
||||
def test_create_pre_commit(empty_git_dir):
|
||||
git.create_pre_commit()
|
||||
assert len(open(git.get_pre_commit_path(), 'r').read()) > 0
|
||||
stat_result = os.stat(git.get_pre_commit_path())
|
||||
assert stat_result.st_mode & stat.S_IXUSR
|
||||
assert stat_result.st_mode & stat.S_IXGRP
|
||||
assert stat_result.st_mode & stat.S_IXOTH
|
||||
|
||||
|
||||
def test_remove_pre_commit(empty_git_dir):
|
||||
git.remove_pre_commit()
|
||||
|
||||
assert not os.path.exists(git.get_pre_commit_path())
|
||||
|
||||
git.create_pre_commit()
|
||||
git.remove_pre_commit()
|
||||
|
||||
assert not os.path.exists(git.get_pre_commit_path())
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def get_files_matching_func():
|
||||
def get_filenames():
|
||||
|
|
|
|||
|
|
@ -53,3 +53,9 @@ def test_repositories(consumer_repo):
|
|||
'git@github.com:pre-commit/pre-commit-hooks',
|
||||
'git@github.com:pre-commit/pre-commit',
|
||||
]
|
||||
|
||||
|
||||
def test_pre_commit_path():
|
||||
runner = Runner('foo/bar')
|
||||
expected_path = os.path.join('foo/bar', '.git/hooks/pre-commit')
|
||||
assert runner.pre_commit_path == expected_path
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue