Before: Save g:ale_warn_about_trailing_whitespace let g:ale_warn_about_trailing_whitespace = 1 runtime ale_linters/python/prospector.vim After: Restore call ale#linter#Reset() Execute(Basic prospector errors should be handle): AssertEqual \ [ \ { \ 'lnum': 20, \ 'col': 1, \ 'text': 'Trailing whitespace', \ 'code': '(pylint) trailing-whitespace', \ 'type': 'E', \ }, \ { \ 'lnum': 1, \ 'col': 1, \ 'text': 'Missing module docstring', \ 'code': '(pylint) missing-docstring', \ 'type': 'E', \ }, \ { \ 'lnum': 2, \ 'col': 1, \ 'text': 'Missing function docstring', \ 'code': '(pylint) missing-docstring', \ 'type': 'E', \ }, \ { \ 'lnum': 3, \ 'col': 5, \ 'text': '''break'' not properly in loop', \ 'code': '(pylint) not-in-loop', \ 'type': 'E', \ }, \ { \ 'lnum': 4, \ 'col': 5, \ 'text': 'Unreachable code', \ 'code': '(pylint) unreachable', \ 'type': 'E', \ }, \ { \ 'lnum': 7, \ 'col': 33, \ 'text': 'No exception type(s) specified', \ 'code': '(pylint) bare-except', \ 'type': 'E', \ }, \ ], \ ale_linters#python#prospector#Handle(bufnr(''), [ \ '{', \ ' "messages": [', \ ' {', \ ' "source": "pylint",', \ ' "code": "trailing-whitespace",', \ ' "message": "Trailing whitespace",', \ ' "location": {', \ ' "character": 0,', \ ' "line": 20', \ ' }', \ ' },', \ ' {', \ ' "source": "pylint",', \ ' "code": "missing-docstring",', \ ' "message": "Missing module docstring",', \ ' "location": {', \ ' "character": 0,', \ ' "line": 1', \ ' }', \ ' },', \ ' {', \ ' "source": "pylint",', \ ' "code": "missing-docstring",', \ ' "message": "Missing function docstring",', \ ' "location": {', \ ' "character": 0,', \ ' "line": 2', \ ' }', \ ' },', \ ' {', \ ' "source": "pylint",', \ ' "code": "not-in-loop",', \ ' "message": "''break'' not properly in loop",', \ ' "location": {', \ ' "character": 4,', \ ' "line": 3', \ ' }', \ ' },', \ ' {', \ ' "source": "pylint",', \ ' "code": "unreachable",', \ ' "message": "Unreachable code",', \ ' "location": {', \ ' "character": 4,', \ ' "line": 4', \ ' }', \ ' },', \ ' {', \ ' "source": "pylint",', \ ' "code": "bare-except",', \ ' "message": "No exception type(s) specified",', \ ' "location": {', \ ' "character": 32,', \ ' "line": 7', \ ' }', \ ' }', \ ' ]', \ '}', \ ]) Execute(Ignoring trailing whitespace messages should work): let g:ale_warn_about_trailing_whitespace = 0 AssertEqual \ [ \ { \ 'lnum': 1, \ 'col': 1, \ 'text': 'Missing module docstring', \ 'code': '(pylint) missing-docstring', \ 'type': 'E', \ }, \ ], \ ale_linters#python#prospector#Handle(bufnr(''), [ \ '{', \ ' "messages": [', \ ' {', \ ' "source": "pylint",', \ ' "code": "trailing-whitespace",', \ ' "message": "Trailing whitespace",', \ ' "location": {', \ ' "character": 0,', \ ' "line": 4', \ ' }', \ ' },', \ ' {', \ ' "source": "pylint",', \ ' "code": "missing-docstring",', \ ' "message": "Missing module docstring",', \ ' "location": {', \ ' "character": 0,', \ ' "line": 1', \ ' }', \ ' }', \ ' ]', \ '}', \ ]) Execute(The prospector handler should handle empty output): AssertEqual \ [], \ ale_linters#python#prospector#Handle(bufnr(''), [])