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'])