diff options
author | w0rp <devw0rp@gmail.com> | 2017-05-07 16:16:17 +0100 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2017-05-07 16:16:17 +0100 |
commit | 4228c503f4e89c50606bf225958363ceb349fecd (patch) | |
tree | d01507848d40f6c74ec219cea95e0e7c3bc2de90 /test/command_callback/test_flake8_command_callback.vader | |
parent | 02f6fba6cbab2adfefb52de5f52ced4dbe153c10 (diff) | |
download | ale-4228c503f4e89c50606bf225958363ceb349fecd.zip |
#335 Detect flake8 in vritualenv, and escape the executable path
Diffstat (limited to 'test/command_callback/test_flake8_command_callback.vader')
-rw-r--r-- | test/command_callback/test_flake8_command_callback.vader | 72 |
1 files changed, 72 insertions, 0 deletions
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']) |