Before: Save g:ale_python_pycodestyle_executable Save g:ale_python_pycodestyle_options Save g:ale_python_pycodestyle_use_global runtime ale_linters/python/pycodestyle.vim After: Restore call ale#linter#Reset() Execute(The pycodestyle command callback should return default string): AssertEqual ale#Escape('pycodestyle') . ' -', \ ale_linters#python#pycodestyle#GetCommand(bufnr('')) Execute(The pycodestyle command callback should allow options): let g:ale_python_pycodestyle_options = '--exclude=test*.py' AssertEqual ale#Escape('pycodestyle') . ' --exclude=test*.py -', \ ale_linters#python#pycodestyle#GetCommand(bufnr('')) Execute(The pycodestyle executable should be configurable): let g:ale_python_pycodestyle_executable = '~/.local/bin/pycodestyle' AssertEqual ale#Escape('~/.local/bin/pycodestyle') . ' -', \ ale_linters#python#pycodestyle#GetCommand(bufnr('')) Execute(Setting executable to 'pipenv' appends 'run pycodestyle'): let g:ale_python_pycodestyle_executable = 'path/to/pipenv' AssertEqual \ ale#Escape('path/to/pipenv') . ' run pycodestyle -', \ ale_linters#python#pycodestyle#GetCommand(bufnr(''))