Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a5ccc89

Browse files
authored
Merge pull request #812 from pre-commit/language_fail
Add language: fail
2 parents cf691e8 + a6e2e1d commit a5ccc89

3 files changed

Lines changed: 40 additions & 0 deletions

File tree

pre_commit/languages/all.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from pre_commit.languages import docker
44
from pre_commit.languages import docker_image
5+
from pre_commit.languages import fail
56
from pre_commit.languages import golang
67
from pre_commit.languages import node
78
from pre_commit.languages import pcre
@@ -54,6 +55,7 @@
5455
languages = {
5556
'docker': docker,
5657
'docker_image': docker_image,
58+
'fail': fail,
5759
'golang': golang,
5860
'node': node,
5961
'pcre': pcre,

pre_commit/languages/fail.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from __future__ import unicode_literals
2+
3+
from pre_commit.languages import helpers
4+
5+
6+
ENVIRONMENT_DIR = None
7+
get_default_version = helpers.basic_get_default_version
8+
healthy = helpers.basic_healthy
9+
install_environment = helpers.no_install
10+
11+
12+
def run_hook(prefix, hook, file_args):
13+
out = hook['entry'].encode('UTF-8') + b'\n\n'
14+
out += b'\n'.join(f.encode('UTF-8') for f in file_args) + b'\n'
15+
return 1, out, b''

tests/repository_test.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -589,6 +589,29 @@ def test_local_rust_additional_dependencies(store):
589589
assert _norm_out(ret[1]) == b"Hello World!\n"
590590

591591

592+
def test_fail_hooks(store):
593+
config = {
594+
'repo': 'local',
595+
'hooks': [{
596+
'id': 'fail',
597+
'name': 'fail',
598+
'language': 'fail',
599+
'entry': 'make sure to name changelogs as .rst!',
600+
'files': r'changelog/.*(?<!\.rst)$',
601+
}],
602+
}
603+
repo = Repository.create(config, store)
604+
(_, hook), = repo.hooks
605+
ret = repo.run_hook(hook, ('changelog/1234.bugfix', 'changelog/wat'))
606+
assert ret[0] == 1
607+
assert ret[1] == (
608+
b'make sure to name changelogs as .rst!\n'
609+
b'\n'
610+
b'changelog/1234.bugfix\n'
611+
b'changelog/wat\n'
612+
)
613+
614+
592615
def test_reinstall(tempdir_factory, store, log_info_mock):
593616
path = make_repo(tempdir_factory, 'python_hooks_repo')
594617
config = make_config_from_repo(path)

0 commit comments

Comments
 (0)