#3633 - Move linter tests into test/linter

This commit is contained in:
w0rp 2021-03-21 00:21:49 +00:00
parent 35caaecc9f
commit f7852dbd0a
No known key found for this signature in database
GPG Key ID: 0FC1ECAA8C81CD83
256 changed files with 40 additions and 144 deletions

View File

@ -1,32 +1,24 @@
" Author: jD91mZM2 <me@krake.one>
call ale#Set('json_jq_executable', 'jq')
call ale#Set('json_jq_options', '')
call ale#Set('json_jq_filters', '.')
function! ale_linters#json#jq#GetCommand(buffer) abort
let l:executable = ale#fixers#jq#GetExecutable(a:buffer)
return ale#Escape(l:executable)
endfunction
" Matches patterns like the following:
" parse error: Expected another key-value pair at line 4, column 3
let s:pattern = '^parse error: \(.\+\) at line \(\d\+\), column \(\d\+\)$'
function! ale_linters#json#jq#Handle(buffer, lines) abort
" Matches patterns like the following:
" parse error: Expected another key-value pair at line 4, column 3
let l:pattern = '^parse error: \(.\+\) at line \(\d\+\), column \(\d\+\)$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:output, {
\ 'text': l:match[1],
\ 'lnum': l:match[2] + 0,
\ 'col': l:match[3] + 0,
\})
endfor
return l:output
return ale#util#MapMatches(a:lines, s:pattern, {match -> {
\ 'text': match[1],
\ 'lnum': match[2] + 0,
\ 'col': match[3] + 0,
\}})
endfunction
call ale#linter#Define('json', {
\ 'name': 'jq',
\ 'executable': function('ale#fixers#jq#GetExecutable'),
\ 'executable': {b -> ale#Var(b, 'json_jq_executable')},
\ 'output_stream': 'stderr',
\ 'command': function('ale_linters#json#jq#GetCommand'),
\ 'command': '%e',
\ 'callback': 'ale_linters#json#jq#Handle',
\})

View File

@ -293,7 +293,7 @@ function! ale#assert#SetUpLinterTest(filetype, name) abort
execute 'runtime ale_linters/' . a:filetype . '/' . a:name . '.vim'
if !exists('g:dir')
call ale#test#SetDirectory('/testplugin/test/command_callback')
call ale#test#SetDirectory('/testplugin/test/linter')
endif
call ale#assert#SetUpLinterTestCommands()

View File

@ -181,7 +181,7 @@ Generally write tests for any changes you make. The following types of tests
are recommended for the following types of code.
* New/edited error handler callbacks -> Write tests in `test/handler`
* New/edited command callbacks -> Write tests in `test/command_callback`
* New/edited linter definition -> Write tests in `test/linter`
* New/edited fixer functions -> Write tests in `test/fixers`
Look at existing tests in the codebase for examples of how to write tests.
@ -278,8 +278,8 @@ be written like so. >
\ '1:Something went wrong',
\ ]
<
Tests for what ALE runs should go in the `test/command_callback` directory,
and should be written like so. >
Tests for what ALE runs should go in the `test/linter` directory, and should
be written like so. >
Before:
" Load the linter and set up a series of commands, reset linter variables,

View File

@ -11,6 +11,10 @@ Before:
let g:feedkeys_calls = []
let g:fake_mode = 'i'
let b:ale_linters = {
\ 'typescript': ['tsserver'],
\}
let &l:completeopt = 'menu,menuone,preview,noselect,noinsert'
runtime autoload/ale/util.vim
@ -69,6 +73,7 @@ After:
unlet! b:ale_completion_info
unlet! b:ale_completion_result
unlet! b:ale_complete_done_time
unlet! b:ale_linters
delfunction CheckCompletionCalled
delfunction ale#code_action#HandleCodeAction

View File

@ -7,9 +7,6 @@ Before:
let g:ale_python_autoimport_options = ''
call ale#test#SetDirectory('/testplugin/test/fixers')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
let b:bin_dir = has('win32') ? 'Scripts' : 'bin'

View File

@ -7,8 +7,6 @@ Before:
let g:ale_python_autopep8_options = ''
call ale#test#SetDirectory('/testplugin/test/fixers')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
let b:bin_dir = has('win32') ? 'Scripts' : 'bin'

View File

@ -12,7 +12,7 @@ After:
call ale#test#RestoreDirectory()
Execute(The bibclean callback should return the correct default values):
call ale#test#SetFilename('../command_callback/../test-files/bib/dummy.bib')
call ale#test#SetFilename('../test-files/bib/dummy.bib')
AssertEqual
\ {'command': ale#Escape(g:ale_bib_bibclean_executable) . ' -align-equals'},
@ -20,7 +20,7 @@ Execute(The bibclean callback should return the correct default values):
Execute(The bibclean callback should include custom bibclean options):
let g:ale_bib_bibclean_options = '-author -check-values'
call ale#test#SetFilename('../command_callback/../test-files/bib/dummy.bib')
call ale#test#SetFilename('../test-files/bib/dummy.bib')
AssertEqual
\ {

View File

@ -1,8 +1,6 @@
Before:
call ale#assert#SetUpFixerTest('python', 'black')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
let b:bin_dir = has('win32') ? 'Scripts' : 'bin'

View File

@ -7,8 +7,6 @@ Before:
let g:ale_c_clangformat_executable = 'xxxinvalid'
call ale#test#SetDirectory('/testplugin/test/fixers')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
After:

View File

@ -17,8 +17,6 @@ Before:
let g:ale_c_build_dir = ''
call ale#test#SetDirectory('/testplugin/test/fixers')
silent cd ../command_callback
let g:dir = getcwd()
After:
Restore

View File

@ -8,8 +8,6 @@ After:
Execute(The fecs fixer should respect to g:ale_javascript_fecs_executable):
let g:ale_javascript_fecs_executable = '../test-files/fecs/fecs'
let g:ale_javascript_fecs_use_global = 1
silent cd ../command_callback
let g:dir = getcwd()
AssertEqual
\ {

View File

@ -1,10 +1,6 @@
Before:
call ale#assert#SetUpFixerTest('html', 'html-beautify', 'beautify')
call ale#test#SetDirectory('/testplugin/test/fixers')
silent cd ..
silent cd command_callback
After:
Restore

View File

@ -1,9 +1,6 @@
Before:
call ale#assert#SetUpFixerTest('python', 'isort')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
let b:bin_dir = has('win32') ? 'Scripts' : 'bin'
After:

View File

@ -5,9 +5,6 @@ Before:
let g:ale_php_cs_fixer_options = ''
call ale#test#SetDirectory('/testplugin/test/fixers')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
After:
Restore

View File

@ -9,9 +9,6 @@ Before:
let g:ale_php_phpcbf_use_global = 0
call ale#test#SetDirectory('/testplugin/test/fixers')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
After:
Restore
@ -75,9 +72,6 @@ Before:
let g:ale_php_phpcbf_use_global = 0
call ale#test#SetDirectory('/testplugin/test/fixers')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
After:
Restore

View File

@ -4,10 +4,6 @@ Before:
let g:ale_command_wrapper = ''
silent cd ..
silent cd command_callback
let g:dir = getcwd()
After:
call ale#assert#TearDownFixerTest()

View File

@ -1,10 +1,6 @@
Before:
call ale#assert#SetUpFixerTest('javascript', 'prettier_standard')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
After:
call ale#assert#TearDownFixerTest()

View File

@ -7,9 +7,6 @@ Before:
let g:ale_puppet_puppetlint_options = '--invalid'
call ale#test#SetDirectory('/testplugin/test/fixers')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
After:
Restore

View File

@ -7,9 +7,6 @@ Before:
let g:ale_python_reorder_python_imports_options = ''
call ale#test#SetDirectory('/testplugin/test/fixers')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
let b:bin_dir = has('win32') ? 'Scripts' : 'bin'

View File

@ -7,9 +7,6 @@ Before:
let g:ale_ruby_rubocop_options = ''
call ale#test#SetDirectory('/testplugin/test/fixers')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
After:
Restore

View File

@ -4,8 +4,7 @@ Before:
" Use an invalid global executable, so we don't match it.
let g:ale_ruby_rufo_executable = 'xxxinvalid'
call ale#test#SetDirectory('/testplugin/test/command_callback')
let g:dir = getcwd()
call ale#test#SetDirectory('/testplugin/test/fixers')
After:
Restore

View File

@ -7,9 +7,6 @@ Before:
let g:ale_scala_scalafmt_options = ''
call ale#test#SetDirectory('/testplugin/test/fixers')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
After:
Restore

View File

@ -1,4 +1,3 @@
Before:
Save g:ale_ruby_sorbet_executable
Save g:ale_ruby_sorbet_options
@ -8,9 +7,6 @@ Before:
let g:ale_ruby_sorbet_options = ''
call ale#test#SetDirectory('/testplugin/test/fixers')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
After:
Restore

View File

@ -7,9 +7,6 @@ Before:
let g:ale_ruby_standardrb_options = ''
call ale#test#SetDirectory('/testplugin/test/fixers')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
After:
Restore

View File

@ -5,9 +5,6 @@ Before:
let g:ale_swift_swiftformat_executable = 'xxxinvalid'
call ale#test#SetDirectory('/testplugin/test/fixers')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
After:
Restore

View File

@ -5,10 +5,6 @@ Before:
call ale#test#SetDirectory('/testplugin/test/fixers')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
After:
Restore

View File

@ -8,10 +8,7 @@ Before:
unlet! b:ale_typescript_tslint_config_path
call ale#handlers#tslint#InitVariables()
call ale#test#SetDirectory('/testplugin/test/command_callback')
silent cd ..
silent cd command_callback
call ale#test#SetDirectory('/testplugin/test/fixers')
After:
Restore

View File

@ -5,9 +5,6 @@ Before:
let g:ale_c_uncrustify_executable = 'xxxinvalid'
call ale#test#SetDirectory('/testplugin/test/fixers')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
After:
Restore

View File

@ -1,10 +1,6 @@
Before:
call ale#assert#SetUpFixerTest('yaml', 'yamlfix')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
let b:bin_dir = has('win32') ? 'Scripts' : 'bin'
After:

View File

@ -5,9 +5,6 @@ Before:
let g:ale_python_yapf_executable = 'xxxinvalid'
call ale#test#SetDirectory('/testplugin/test/fixers')
silent cd ..
silent cd command_callback
let g:dir = getcwd()
let b:bin_dir = has('win32') ? 'Scripts' : 'bin'

View File

@ -1,14 +1,13 @@
Before:
runtime ale_linters/tex/lacheck.vim
call ale#test#SetDirectory('/testplugin/test')
call ale#test#SetDirectory('/testplugin/test/handler')
After:
call ale#linter#Reset()
call ale#test#RestoreDirectory()
Execute(The lacheck handler should parse lines correctly):
call ale#test#SetFilename('command_callback/../test-files/tex/sample1.tex')
call ale#test#SetFilename('../test-files/tex/sample1.tex')
AssertEqual
\ [
@ -24,7 +23,6 @@ Execute(The lacheck handler should parse lines correctly):
\ ])
Execute(The lacheck handler should ignore errors from input files):
call ale#test#SetFilename('ale_test.tex')
AssertEqual

View File

@ -1,9 +1,6 @@
Before:
call ale#assert#SetUpLinterTest('c', 'clangd')
Save &filetype
let &filetype = 'c'
Save b:ale_c_clangd_options
Save b:ale_c_build_dir
Save b:ale_c_build_dir_names
@ -48,4 +45,3 @@ Execute(The compile command database should be detected correctly):
AssertLinter 'clangd', ale#Escape('clangd')
\ . ' -compile-commands-dir='
\ . ale#Escape(ale#path#Simplify(g:dir . '/../test-files/clangd/with_build_dir/unusual_build_dir_name'))

View File

@ -3,12 +3,6 @@ Before:
let b:command_tail = ' -q --language=c --template=' . ale#Escape('{file}:{line}:{column}: {severity}:{inconclusive:inconclusive:} {message} [{id}]\\n{code}') . ' --enable=style -I' . ale#Escape(ale#path#Simplify(g:dir)) .' %t'
After:
" Remove a test file we might open for some tests.
if &buftype != 'nofile'
:q!
set buftype=nofile
endif
unlet! b:command_tail
call ale#assert#TearDownLinterTest()
@ -50,17 +44,3 @@ Execute(cppcheck for C should include file dir if compile_commands.json file is
\ . ' --enable=style'
\ . ' -I' . ale#Escape(ale#path#Simplify(g:dir . '/../test-files/cppcheck'))
\ . ' %t'
Execute(cppcheck for C should ignore compile_commands.json file if buffer is modified):
call ale#test#SetFilename('../test-files/cppcheck/one/foo.c')
set buftype=
set modified
AssertLinterCwd ale#path#Simplify(g:dir . '/../test-files/cppcheck/one')
AssertLinter 'cppcheck', ale#Escape('cppcheck')
\ . ' -q --language=c'
\ . ' --template=' . ale#Escape('{file}:{line}:{column}: {severity}:{inconclusive:inconclusive:} {message} [{id}]\\n{code}')
\ . ' --enable=style'
\ . ' -I' . ale#Escape(ale#path#Simplify(g:dir . '/../test-files/cppcheck/one'))
\ . ' %t'

Some files were not shown because too many files have changed in this diff Show More