Before: runtime ale_linters/python/vulture.vim call ale#test#SetDirectory('/testplugin/test/handler') After: Restore call ale#test#RestoreDirectory() call ale#linter#Reset() Execute(Basic vulture check with relative path in result should be handled): call ale#test#SetFilename('something_else.py') AssertEqual \ [ \ { \ 'lnum': 34, \ 'text': 'unused variable ''foo'' (60% confidence)', \ 'type': 'W', \ 'filename': ale#path#Simplify(g:dir . '/something_else.py'), \ }, \ ], \ ale_linters#python#vulture#Handle(bufnr(''), [ \ './something_else.py:34: unused variable ''foo'' (60% confidence)', \ ]) Execute(Basic vulture check with absolute path in result should be handled): call ale#test#SetFilename('something_else.py') AssertEqual \ [ \ { \ 'lnum': 34, \ 'text': 'unused variable ''foo'' (60% confidence)', \ 'type': 'W', \ 'filename': ale#path#Simplify(g:dir . '/something_else.py'), \ }, \ ], \ ale_linters#python#vulture#Handle(bufnr(''), [ \ ale#path#Simplify(g:dir . '/something_else.py') . ':34: unused variable ''foo'' (60% confidence)', \ ]) Execute(Vulture check for two files should be handled): call ale#test#SetFilename('something_else.py') AssertEqual \ [ \ { \ 'lnum': 34, \ 'text': 'unused variable ''foo'' (60% confidence)', \ 'type': 'W', \ 'filename': ale#path#Simplify(g:dir . '/something_else.py'), \ }, \ { \ 'lnum': 12, \ 'text': 'unused variable ''bar'' (60% confidence)', \ 'type': 'W', \ 'filename': ale#path#Simplify(g:dir . '/second_one.py'), \ }, \ ], \ ale_linters#python#vulture#Handle(bufnr(''), [ \ './something_else.py:34: unused variable ''foo'' (60% confidence)', \ './second_one.py:12: unused variable ''bar'' (60% confidence)', \ ]) Execute(Vulture exception should be handled): call ale#test#SetFilename('something_else.py') AssertEqual \ [ \ { \ 'lnum': 1, \ 'text': 'BaddestException: Everything gone wrong (See :ALEDetail)', \ 'detail': join([ \ 'Traceback (most recent call last):', \ ' File "/usr/lib/python3.6/site-packages/vulture/__init__.py", line 13, in ', \ ' from .core import stuff', \ 'BaddestException: Everything gone wrong', \ ], "\n"), \ } \ ], \ ale_linters#python#vulture#Handle(bufnr(''), [ \ 'Traceback (most recent call last):', \ ' File "/usr/lib/python3.6/site-packages/vulture/__init__.py", line 13, in ', \ ' from .core import stuff', \ 'BaddestException: Everything gone wrong', \ ]) Execute(The vulture handler should handle empty output): AssertEqual \ [], \ ale_linters#python#vulture#Handle(bufnr(''), [])