Before: call ale#linter#Reset() unlet! b:ale_linters unlet! b:ale_completion_info unlet! b:ale_completion_result After: call ale#linter#Reset() unlet! b:ale_linters unlet! b:ale_completion_info unlet! b:ale_completion_result Execute(ale#completion#GetCompletionResult() should return v:null when there are no results): AssertEqual v:null, ale#completion#GetCompletionResult() Execute(ale#completion#GetCompletionResult() should return a result computed previously): let b:ale_completion_result = [1] AssertEqual [1], ale#completion#GetCompletionResult() Execute(ale#completion#GetCompletionPosition() should return 0 when there is no completion information): AssertEqual 0, ale#completion#GetCompletionPosition() Given python(Some Python file): foo bar Execute(ale#completion#GetCompletionPosition() should return the position in the file when information is available): let b:ale_completion_info = {'line': 1, 'column': 6} " This is the first character of 'bar' AssertEqual 4, ale#completion#GetCompletionPosition() Execute(ale#completion#CanProvideCompletions should return 0 when no completion sources are available): AssertEqual 0, ale#completion#CanProvideCompletions() Execute(ale#completion#CanProvideCompletions should return 1 when at least one completion source is available): runtime ale_linters/python/pyls.vim let b:ale_linters = ['pyls'] AssertEqual 1, ale#completion#CanProvideCompletions()