mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-17 08:14:42 +04:00
added config validation to install tests
This commit is contained in:
parent
905b99917f
commit
95d9e29996
2 changed files with 25 additions and 17 deletions
|
|
@ -41,7 +41,7 @@ CONFIG_JSON_SCHEMA = {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
validate_manifest = get_validator(
|
validate_config = get_validator(
|
||||||
C.CONFIG_FILE,
|
C.CONFIG_FILE,
|
||||||
CONFIG_JSON_SCHEMA,
|
CONFIG_JSON_SCHEMA,
|
||||||
InvalidConfigError,
|
InvalidConfigError,
|
||||||
|
|
@ -60,7 +60,7 @@ def run(argv):
|
||||||
args = parser.parse_args(argv)
|
args = parser.parse_args(argv)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
validate_manifest(args.filename)
|
validate_config(args.filename)
|
||||||
except InvalidConfigError as e:
|
except InvalidConfigError as e:
|
||||||
print(e.args[0])
|
print(e.args[0])
|
||||||
# If we have more than one exception argument print the stringified
|
# If we have more than one exception argument print the stringified
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
|
import jsonschema
|
||||||
import pytest
|
import pytest
|
||||||
import os
|
import os
|
||||||
|
from plumbum import local
|
||||||
|
|
||||||
import pre_commit.constants as C
|
import pre_commit.constants as C
|
||||||
from plumbum import local
|
from pre_commit.clientlib.validate_config import CONFIG_JSON_SCHEMA
|
||||||
from pre_commit.installer.repo_installer import create_repo_in_env
|
from pre_commit.installer.repo_installer import create_repo_in_env
|
||||||
from pre_commit.installer.repo_installer import install_pre_commit
|
from pre_commit.installer.repo_installer import install_pre_commit
|
||||||
|
|
||||||
|
|
@ -26,9 +28,8 @@ def test_install_python_repo_in_env(empty_git_dir, python_pre_commit_git_repo):
|
||||||
assert os.path.exists(os.path.join(python_pre_commit_git_repo, C.PRE_COMMIT_DIR, sha, 'py_env'))
|
assert os.path.exists(os.path.join(python_pre_commit_git_repo, C.PRE_COMMIT_DIR, sha, 'py_env'))
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.integration
|
@pytest.fixture
|
||||||
def test_install_config(empty_git_dir, python_pre_commit_git_repo):
|
def simple_config(python_pre_commit_git_repo):
|
||||||
|
|
||||||
config = [
|
config = [
|
||||||
{
|
{
|
||||||
'repo': python_pre_commit_git_repo,
|
'repo': python_pre_commit_git_repo,
|
||||||
|
|
@ -36,17 +37,24 @@ def test_install_config(empty_git_dir, python_pre_commit_git_repo):
|
||||||
'hooks': [
|
'hooks': [
|
||||||
{
|
{
|
||||||
'id': 'foo',
|
'id': 'foo',
|
||||||
'args': [
|
'files': '*.py',
|
||||||
{
|
}
|
||||||
'type': 'files',
|
|
||||||
'opt': '*.py'
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
for repo in config:
|
jsonschema.validate(config, CONFIG_JSON_SCHEMA)
|
||||||
|
return config
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.integration
|
||||||
|
def test_install_config(empty_git_dir, python_pre_commit_git_repo, simple_config):
|
||||||
|
for repo in simple_config:
|
||||||
install_pre_commit(repo['repo'], repo['sha'])
|
install_pre_commit(repo['repo'], repo['sha'])
|
||||||
|
|
||||||
assert os.path.exists(os.path.join(python_pre_commit_git_repo, C.PRE_COMMIT_DIR, config[0]['sha'], 'py_env'))
|
assert os.path.exists(
|
||||||
|
os.path.join(
|
||||||
|
python_pre_commit_git_repo,
|
||||||
|
C.PRE_COMMIT_DIR, simple_config[0]['sha'],
|
||||||
|
'py_env',
|
||||||
|
),
|
||||||
|
)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue