Before: Save g:ale_buffer_info Save g:ale_enabled Save b:ale_enabled Save g:ale_maximum_file_size Save b:ale_maximum_file_size function! SetUpCursorData() let g:ale_buffer_info = { \ bufnr('%'): { \ 'loclist': [ \ { \ 'lnum': 2, \ 'col': 10, \ 'linter_name': 'testlinter', \ 'type': 'W', \ 'text': 'X' \ }, \ ], \ }, \} call cursor(2, 16) endfunction function! TestCallback(buffer, output) return [] endfunction call ale#linter#Define('foobar', { \ 'name': 'testlinter', \ 'callback': 'TestCallback', \ 'executable': 'echo', \ 'command': 'true', \}) function GetLastMessage() redir => l:output silent mess redir END let l:lines = split(l:output, "\n") return empty(l:lines) ? '' : l:lines[-1] endfunction echomsg '' After: Restore call ale#linter#Reset() delfunction TestCallback delfunction GetLastMessage delfunction SetUpCursorData Given foobar (Some imaginary filetype): foo bar baz Execute(Linting shouldn't happen when ALE is disabled globally): let g:ale_enabled = 0 let g:ale_buffer_info = {} call ale#Queue(0) AssertEqual {}, g:ale_buffer_info Execute(Linting shouldn't happen when the file is too large with a global options): let g:ale_maximum_file_size = 12 let g:ale_buffer_info = {} call ale#Queue(0) AssertEqual {}, g:ale_buffer_info Execute(Linting shouldn't happen when ALE is disabled locally): let b:ale_enabled = 0 let g:ale_buffer_info = {} call ale#Queue(0) AssertEqual {}, g:ale_buffer_info Execute(Linting shouldn't happen when the file is too large with a local options): let b:ale_maximum_file_size = 12 let g:ale_buffer_info = {} call ale#Queue(0) AssertEqual {}, g:ale_buffer_info Execute(Cursor warnings shouldn't be echoed when ALE is disabled globally): let g:ale_enabled = 0 call SetUpCursorData() call ale#cursor#EchoCursorWarning() AssertEqual '', GetLastMessage() Execute(Cursor warnings shouldn't be echoed when the file is too large with global options): let g:ale_maximum_file_size = 12 call SetUpCursorData() call ale#cursor#EchoCursorWarning() AssertEqual '', GetLastMessage() Execute(Cursor warnings shouldn't be echoed when ALE is disabled locally): let b:ale_enabled = 0 call SetUpCursorData() call ale#cursor#EchoCursorWarning() AssertEqual '', GetLastMessage() Execute(Cursor warnings shouldn't be echoed when the file is too large with local options): let b:ale_maximum_file_size = 12 call SetUpCursorData() call ale#cursor#EchoCursorWarning() AssertEqual '', GetLastMessage()