From a6e2e1d4bb4fdb773214b004ed72b941d79ec87c Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Fri, 10 Aug 2018 18:11:28 -0700 Subject: [PATCH] Add language: fail --- pre_commit/languages/all.py | 2 ++ pre_commit/languages/fail.py | 15 +++++++++++++++ tests/repository_test.py | 23 +++++++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 pre_commit/languages/fail.py diff --git a/pre_commit/languages/all.py b/pre_commit/languages/all.py index be74ffd3..a019ddff 100644 --- a/pre_commit/languages/all.py +++ b/pre_commit/languages/all.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals from pre_commit.languages import docker from pre_commit.languages import docker_image +from pre_commit.languages import fail from pre_commit.languages import golang from pre_commit.languages import node from pre_commit.languages import pcre @@ -54,6 +55,7 @@ from pre_commit.languages import system languages = { 'docker': docker, 'docker_image': docker_image, + 'fail': fail, 'golang': golang, 'node': node, 'pcre': pcre, diff --git a/pre_commit/languages/fail.py b/pre_commit/languages/fail.py new file mode 100644 index 00000000..c69fcae0 --- /dev/null +++ b/pre_commit/languages/fail.py @@ -0,0 +1,15 @@ +from __future__ import unicode_literals + +from pre_commit.languages import helpers + + +ENVIRONMENT_DIR = None +get_default_version = helpers.basic_get_default_version +healthy = helpers.basic_healthy +install_environment = helpers.no_install + + +def run_hook(prefix, hook, file_args): + out = hook['entry'].encode('UTF-8') + b'\n\n' + out += b'\n'.join(f.encode('UTF-8') for f in file_args) + b'\n' + return 1, out, b'' diff --git a/tests/repository_test.py b/tests/repository_test.py index 95506eeb..4c76f9a0 100644 --- a/tests/repository_test.py +++ b/tests/repository_test.py @@ -589,6 +589,29 @@ def test_local_rust_additional_dependencies(store): assert _norm_out(ret[1]) == b"Hello World!\n" +def test_fail_hooks(store): + config = { + 'repo': 'local', + 'hooks': [{ + 'id': 'fail', + 'name': 'fail', + 'language': 'fail', + 'entry': 'make sure to name changelogs as .rst!', + 'files': r'changelog/.*(?