summaryrefslogtreecommitdiff
path: root/test/command_callback
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2017-05-07 16:16:17 +0100
committerw0rp <devw0rp@gmail.com>2017-05-07 16:16:17 +0100
commit4228c503f4e89c50606bf225958363ceb349fecd (patch)
treed01507848d40f6c74ec219cea95e0e7c3bc2de90 /test/command_callback
parent02f6fba6cbab2adfefb52de5f52ced4dbe153c10 (diff)
downloadale-4228c503f4e89c50606bf225958363ceb349fecd.zip
#335 Detect flake8 in vritualenv, and escape the executable path
Diffstat (limited to 'test/command_callback')
-rwxr-xr-xtest/command_callback/python_paths/with_virtualenv/env/bin/flake80
-rw-r--r--test/command_callback/test_flake8_command_callback.vader72
2 files changed, 72 insertions, 0 deletions
diff --git a/test/command_callback/python_paths/with_virtualenv/env/bin/flake8 b/test/command_callback/python_paths/with_virtualenv/env/bin/flake8
new file mode 100755
index 00000000..e69de29b
--- /dev/null
+++ b/test/command_callback/python_paths/with_virtualenv/env/bin/flake8
diff --git a/test/command_callback/test_flake8_command_callback.vader b/test/command_callback/test_flake8_command_callback.vader
new file mode 100644
index 00000000..bf4dfaff
--- /dev/null
+++ b/test/command_callback/test_flake8_command_callback.vader
@@ -0,0 +1,72 @@
+Before:
+ runtime ale_linters/python/flake8.vim
+ silent! execute 'cd /testplugin/test/command_callback'
+ let g:dir = getcwd()
+
+After:
+ silent execute 'cd ' . fnameescape(g:dir)
+ " Set the file to something else,
+ " or we'll cause issues when running other tests
+ silent file 'dummy.py'
+ unlet! g:dir
+
+ call ale#linter#Reset()
+ let g:ale_python_flake8_executable = 'flake8'
+ let g:ale_python_flake8_options = ''
+ let g:ale_python_flake8_use_global = 0
+
+ call ale_linters#python#flake8#ClearVersionCache()
+
+Execute(The flake8 callbacks should return the correct default values):
+ AssertEqual
+ \ 'flake8',
+ \ ale_linters#python#flake8#GetExecutable(bufnr(''))
+ AssertEqual
+ \ 'flake8 --version',
+ \ ale_linters#python#flake8#VersionCheck(bufnr(''))
+ AssertEqual
+ \ 'flake8 --stdin-display-name %s -',
+ \ ale_linters#python#flake8#GetCommand(bufnr(''), ['3.0.0'])
+ " Try with older versions.
+ call ale_linters#python#flake8#ClearVersionCache()
+ AssertEqual
+ \ 'flake8 -',
+ \ ale_linters#python#flake8#GetCommand(bufnr(''), ['2.9.9'])
+
+Execute(The flake8 command callback should let you set options):
+ let g:ale_python_flake8_options = '--some-option'
+
+ AssertEqual
+ \ 'flake8 --some-option --stdin-display-name %s -',
+ \ ale_linters#python#flake8#GetCommand(bufnr(''), ['3.0.4'])
+ call ale_linters#python#flake8#ClearVersionCache()
+ AssertEqual
+ \ 'flake8 --some-option -',
+ \ ale_linters#python#flake8#GetCommand(bufnr(''), ['2.9.9'])
+
+Execute(You should be able to set a custom executable and it should be escaped):
+ let g:ale_python_flake8_executable = 'executable with spaces'
+
+ AssertEqual
+ \ 'executable with spaces',
+ \ ale_linters#python#flake8#GetExecutable(bufnr(''))
+ AssertEqual
+ \ 'executable\ with\ spaces --version',
+ \ ale_linters#python#flake8#VersionCheck(bufnr(''))
+ AssertEqual
+ \ 'executable\ with\ spaces --stdin-display-name %s -',
+ \ ale_linters#python#flake8#GetCommand(bufnr(''), ['3.0.0'])
+
+Execute(The flake8 callbacks should detect virtualenv directories):
+ silent execute 'file ' . fnameescape(g:dir . '/python_paths/with_virtualenv/subdir/foo/bar.py')
+
+ AssertEqual
+ \ g:dir . '/python_paths/with_virtualenv/env/bin/flake8',
+ \ ale_linters#python#flake8#GetExecutable(bufnr(''))
+ AssertEqual
+ \ g:dir . '/python_paths/with_virtualenv/env/bin/flake8 --version',
+ \ ale_linters#python#flake8#VersionCheck(bufnr(''))
+ AssertEqual
+ \ g:dir . '/python_paths/with_virtualenv/env/bin/flake8'
+ \ . ' --stdin-display-name %s -',
+ \ ale_linters#python#flake8#GetCommand(bufnr(''), ['3.0.0'])