diff options
author | Chris Weyl <chris@weyl.io> | 2017-07-03 09:37:32 -0500 |
---|---|---|
committer | w0rp <w0rp@users.noreply.github.com> | 2017-07-03 15:37:32 +0100 |
commit | 5a3cfbbdf50bc3e82e8ceca486a6bbda201f99d9 (patch) | |
tree | 8b082f2598a3f49ace0f3ba38eb4b34f342cffdc /test/test_dockerfile_hadolint_linter.vader | |
parent | 51f256e897891617eb8539c31f0c48e037600de7 (diff) | |
download | ale-5a3cfbbdf50bc3e82e8ceca486a6bbda201f99d9.zip |
Allow `hadolint` linter to run via docker image (#720)
* Add documentation for hadolint (doc/ale-hadolint.txt)
* Allow `hadolint` linter to run via docker image
These changes enable the `hadolint` linter to run via the author's
docker image, if present. Three modes are supported:
* never use docker;
* always use docker; and
* use docker as a failback.
Diffstat (limited to 'test/test_dockerfile_hadolint_linter.vader')
-rw-r--r-- | test/test_dockerfile_hadolint_linter.vader | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/test/test_dockerfile_hadolint_linter.vader b/test/test_dockerfile_hadolint_linter.vader new file mode 100644 index 00000000..7262c5b0 --- /dev/null +++ b/test/test_dockerfile_hadolint_linter.vader @@ -0,0 +1,69 @@ +" NOTE: We use the 'b:' forms below to ensure that we're properly using +" ale#Var() + +Given dockerfile: + # + +Before: + Save g:ale_dockerfile_hadolint_use_docker + Save g:ale_dockerfile_hadolint_docker_image + silent! unlet g:ale_dockerfile_hadolint_use_docker + silent! unlet g:ale_dockerfile_hadolint_docker_image + + " enable loading inside test container + silent! cd /testplugin + source ale_linters/dockerfile/hadolint.vim + + +After: + Restore + silent! unlet b:ale_dockerfile_hadolint_use_docker + silent! unlet b:ale_dockerfile_hadolint_docker_image + + +Execute(linter honors ..._use_docker correctly): + + " default: never + AssertEqual + \ 'hadolint', + \ ale_linters#dockerfile#hadolint#GetExecutable(bufnr('')) + + " explicit never + let b:ale_dockerfile_hadolint_use_docker = 'never' + AssertEqual + \ 'hadolint', + \ ale_linters#dockerfile#hadolint#GetExecutable(bufnr('')) + + let b:ale_dockerfile_hadolint_use_docker = 'always' + AssertEqual + \ 'docker', + \ ale_linters#dockerfile#hadolint#GetExecutable(bufnr('')) + + " hadolint if present, otherwise docker + let command = 'docker' + if executable('hadolint') + let command = 'hadolint' + endif + + let b:ale_dockerfile_hadolint_use_docker = 'yes' + AssertEqual + \ command, + \ ale_linters#dockerfile#hadolint#GetExecutable(bufnr('')) + + +Execute(command is correct when using docker): + let b:ale_dockerfile_hadolint_use_docker = 'always' + + AssertEqual + \ "docker run --rm -i lukasmartinelli/hadolint", + \ ale_linters#dockerfile#hadolint#GetCommand(bufnr('')) + + +Execute(command is correct when not docker): + let b:ale_dockerfile_hadolint_use_docker = 'never' + + AssertEqual + \ "hadolint -", + \ ale_linters#dockerfile#hadolint#GetCommand(bufnr('')) + +" fin... |