mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-19 17:14:43 +04:00
Write test for auto-validating manifest at root of repo
This commit is contained in:
parent
37e94b1e1e
commit
9fa237fbe0
4 changed files with 27 additions and 22 deletions
|
|
@ -8,6 +8,7 @@ import os.path
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
import pre_commit.constants as C
|
import pre_commit.constants as C
|
||||||
|
from pre_commit import git
|
||||||
|
|
||||||
|
|
||||||
class InvalidManifestError(ValueError): pass
|
class InvalidManifestError(ValueError): pass
|
||||||
|
|
@ -69,8 +70,7 @@ def run(argv):
|
||||||
args = parser.parse_args(argv)
|
args = parser.parse_args(argv)
|
||||||
|
|
||||||
if args.filename is None:
|
if args.filename is None:
|
||||||
# TODO: filename = git.get_root() + C.MANIFEST_FILE
|
filename = os.path.join(git.get_root(), C.MANIFEST_FILE)
|
||||||
raise NotImplementedError
|
|
||||||
else:
|
else:
|
||||||
filename = args.filename
|
filename = args.filename
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,9 @@ import __builtin__
|
||||||
import jsonschema
|
import jsonschema
|
||||||
import pytest
|
import pytest
|
||||||
import mock
|
import mock
|
||||||
|
from plumbum import local
|
||||||
|
|
||||||
|
import pre_commit.constants as C
|
||||||
from pre_commit.clientlib.validate_manifest import check_is_valid_manifest
|
from pre_commit.clientlib.validate_manifest import check_is_valid_manifest
|
||||||
from pre_commit.clientlib.validate_manifest import InvalidManifestError
|
from pre_commit.clientlib.validate_manifest import InvalidManifestError
|
||||||
from pre_commit.clientlib.validate_manifest import run
|
from pre_commit.clientlib.validate_manifest import run
|
||||||
|
|
@ -48,6 +50,18 @@ def test_returns_0_for_valid_manifest():
|
||||||
assert ret == 0
|
assert ret == 0
|
||||||
|
|
||||||
|
|
||||||
|
def test_uses_default_manifest_file_at_root_of_git(empty_git_dir):
|
||||||
|
local.path(C.MANIFEST_FILE).write("""
|
||||||
|
hooks:
|
||||||
|
-
|
||||||
|
id: foo
|
||||||
|
name: Foo
|
||||||
|
entry: foo
|
||||||
|
""")
|
||||||
|
ret = run([])
|
||||||
|
assert ret == 0
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(('manifest', 'expected_exception_type'), (
|
@pytest.mark.parametrize(('manifest', 'expected_exception_type'), (
|
||||||
(
|
(
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
10
tests/conftest.py
Normal file
10
tests/conftest.py
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
from plumbum import local
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.yield_fixture
|
||||||
|
def empty_git_dir(tmpdir):
|
||||||
|
with local.cwd(tmpdir.strpath):
|
||||||
|
local['git']['init']()
|
||||||
|
yield tmpdir.strpath
|
||||||
|
|
@ -1,36 +1,17 @@
|
||||||
|
|
||||||
import contextlib
|
|
||||||
import os
|
import os
|
||||||
import pytest
|
|
||||||
|
|
||||||
from plumbum import local
|
from plumbum import local
|
||||||
from pre_commit import git
|
from pre_commit import git
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@contextlib.contextmanager
|
|
||||||
def in_dir(dir):
|
|
||||||
old_path = local.cwd.getpath()
|
|
||||||
local.cwd.chdir(dir)
|
|
||||||
try:
|
|
||||||
yield
|
|
||||||
finally:
|
|
||||||
local.cwd.chdir(old_path)
|
|
||||||
|
|
||||||
@pytest.yield_fixture
|
|
||||||
def empty_git_dir(tmpdir):
|
|
||||||
with in_dir(tmpdir.strpath):
|
|
||||||
local['git']['init']()
|
|
||||||
yield tmpdir.strpath
|
|
||||||
|
|
||||||
|
|
||||||
def test_get_root(empty_git_dir):
|
def test_get_root(empty_git_dir):
|
||||||
assert git.get_root() == empty_git_dir
|
assert git.get_root() == empty_git_dir
|
||||||
|
|
||||||
foo = local.path('foo')
|
foo = local.path('foo')
|
||||||
foo.mkdir()
|
foo.mkdir()
|
||||||
|
|
||||||
with in_dir(foo):
|
with local.cwd(foo):
|
||||||
assert git.get_root() == empty_git_dir
|
assert git.get_root() == empty_git_dir
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue