mirror of
https://github.com/dense-analysis/ale.git
synced 2026-01-03 18:14:01 +08:00
#335 Detect flake8 in vritualenv, and escape the executable path
This commit is contained in:
0
test/command_callback/python_paths/with_virtualenv/env/bin/flake8
vendored
Executable file
0
test/command_callback/python_paths/with_virtualenv/env/bin/flake8
vendored
Executable file
72
test/command_callback/test_flake8_command_callback.vader
Normal file
72
test/command_callback/test_flake8_command_callback.vader
Normal file
@@ -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'])
|
||||
Reference in New Issue
Block a user