summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/command_callback/test_tslint_command_callback.vader21
-rw-r--r--test/command_callback/test_write_good_command_callback.vader29
-rw-r--r--test/completion/test_lsp_completion_messages.vader1
-rw-r--r--test/fixers/test_isort_fixer_callback.vader17
-rw-r--r--test/lsp/test_did_save_event.vader1
-rw-r--r--test/lsp/test_lsp_command_formatting.vader37
-rw-r--r--test/test_ale_var.vader5
-rw-r--r--test/test_find_references.vader2
-rw-r--r--test/test_format_command.vader37
-rw-r--r--test/test_go_to_definition.vader2
-rw-r--r--test/test_hover.vader2
-rw-r--r--test/test_linter_defintion_processing.vader132
12 files changed, 183 insertions, 103 deletions
diff --git a/test/command_callback/test_tslint_command_callback.vader b/test/command_callback/test_tslint_command_callback.vader
index edab72c8..0c2f3abf 100644
--- a/test/command_callback/test_tslint_command_callback.vader
+++ b/test/command_callback/test_tslint_command_callback.vader
@@ -1,4 +1,6 @@
Before:
+ call ale#assert#Init()
+
Save g:ale_typescript_tslint_executable
Save g:ale_typescript_tslint_config_path
Save g:ale_typescript_tslint_rules_dir
@@ -26,26 +28,25 @@ After:
call ale#linter#Reset()
Execute(The default tslint command should be correct):
- AssertEqual
+ AssertLinter
+ \ 'tslint',
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
- \ . ale#Escape('tslint') . ' --format json %t',
- \ ale_linters#typescript#tslint#GetCommand(bufnr(''))
+ \ . ale#Escape('tslint') . ' --format json %t'
Execute(The rules directory option should be included if set):
let b:ale_typescript_tslint_rules_dir = '/foo/bar'
- AssertEqual
+ AssertLinter
+ \ 'tslint',
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
\ . ale#Escape('tslint') . ' --format json'
\ . ' -r ' . ale#Escape('/foo/bar')
- \ . ' %t',
- \ ale_linters#typescript#tslint#GetCommand(bufnr(''))
+ \ . ' %t'
Execute(The executable should be configurable and escaped):
let b:ale_typescript_tslint_executable = 'foo bar'
- AssertEqual 'foo bar', ale_linters#typescript#tslint#GetExecutable(bufnr(''))
- AssertEqual
+ AssertLinter
+ \ 'foo bar',
\ 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
- \ . ale#Escape('foo bar') . ' --format json %t',
- \ ale_linters#typescript#tslint#GetCommand(bufnr(''))
+ \ . ale#Escape('foo bar') . ' --format json %t'
diff --git a/test/command_callback/test_write_good_command_callback.vader b/test/command_callback/test_write_good_command_callback.vader
index 8d9e9a00..4b5ed7b7 100644
--- a/test/command_callback/test_write_good_command_callback.vader
+++ b/test/command_callback/test_write_good_command_callback.vader
@@ -1,4 +1,6 @@
Before:
+ call ale#assert#Init()
+
Save g:ale_writegood_options
Save g:ale_writegood_executable
Save g:ale_writegood_use_global
@@ -7,6 +9,8 @@ Before:
unlet! g:ale_writegood_executable
unlet! g:ale_writegood_use_global
+ runtime ale_linters/markdown/write-good.vim
+
call ale#test#SetDirectory('/testplugin/test/command_callback')
call ale#test#SetFilename('testfile.txt')
@@ -16,42 +20,36 @@ After:
Restore
call ale#test#RestoreDirectory()
+ call ale#linter#Reset()
Execute(The global executable should be used when the local one cannot be found):
- AssertEqual 'write-good', ale#handlers#writegood#GetExecutable(bufnr(''))
- AssertEqual
+ AssertLinter
+ \ 'write-good',
\ ale#Escape('write-good') . ' %t',
- \ ale#handlers#writegood#GetCommand(bufnr(''))
Execute(The options should be used in the command):
let g:ale_writegood_options = '--foo --bar'
- AssertEqual
+ AssertLinter
+ \ 'write-good',
\ ale#Escape('write-good') . ' --foo --bar %t',
- \ ale#handlers#writegood#GetCommand(bufnr(''))
Execute(Should use the node_modules/.bin executable, if available):
call ale#test#SetFilename('write-good-node-modules/test.txt')
- AssertEqual
+ AssertLinter
\ ale#path#Simplify(g:dir . '/write-good-node-modules/node_modules/.bin/write-good'),
- \ ale#handlers#writegood#GetExecutable(bufnr(''))
- AssertEqual
\ ale#Escape(ale#path#Simplify(g:dir . '/write-good-node-modules/node_modules/.bin/write-good'))
\ . ' %t',
- \ ale#handlers#writegood#GetCommand(bufnr(''))
Execute(Should use the node_modules/write-good executable, if available):
call ale#test#SetFilename('write-good-node-modules-2/test.txt')
- AssertEqual
+ AssertLinter
\ ale#path#Simplify(g:dir . '/write-good-node-modules-2/node_modules/write-good/bin/write-good.js'),
- \ ale#handlers#writegood#GetExecutable(bufnr(''))
- AssertEqual
\ (has('win32') ? 'node.exe ' : '')
\ . ale#Escape(ale#path#Simplify(g:dir . '/write-good-node-modules-2/node_modules/write-good/bin/write-good.js'))
\ . ' %t',
- \ ale#handlers#writegood#GetCommand(bufnr(''))
Execute(Should let users configure a global executable and override local paths):
call ale#test#SetFilename('write-good-node-modules-2/test.txt')
@@ -59,7 +57,4 @@ Execute(Should let users configure a global executable and override local paths)
let g:ale_writegood_executable = 'foo-bar'
let g:ale_writegood_use_global = 1
- AssertEqual 'foo-bar', ale#handlers#writegood#GetExecutable(bufnr(''))
- AssertEqual
- \ ale#Escape('foo-bar') . ' %t',
- \ ale#handlers#writegood#GetCommand(bufnr(''))
+ AssertLinter 'foo-bar', ale#Escape('foo-bar') . ' %t'
diff --git a/test/completion/test_lsp_completion_messages.vader b/test/completion/test_lsp_completion_messages.vader
index 8ba2ad38..e5aac176 100644
--- a/test/completion/test_lsp_completion_messages.vader
+++ b/test/completion/test_lsp_completion_messages.vader
@@ -59,6 +59,7 @@ After:
runtime autoload/ale/completion.vim
runtime autoload/ale/lsp.vim
+ runtime autoload/ale/lsp_linter.vim
Given typescript(Some typescript file):
foo
diff --git a/test/fixers/test_isort_fixer_callback.vader b/test/fixers/test_isort_fixer_callback.vader
index 7c2b515f..56c08d26 100644
--- a/test/fixers/test_isort_fixer_callback.vader
+++ b/test/fixers/test_isort_fixer_callback.vader
@@ -1,5 +1,6 @@
Before:
Save g:ale_python_isort_executable
+ Save g:ale_python_isort_options
" Use an invalid global executable, so we don't match it.
let g:ale_python_isort_executable = 'xxxinvalid'
@@ -30,3 +31,19 @@ Execute(The isort callback should return the correct default values):
\ . ale#Escape(ale#path#Simplify(g:dir . '/python_paths/with_virtualenv/env/' . b:bin_dir . '/isort')) . ' -',
\ },
\ ale#fixers#isort#Fix(bufnr(''))
+
+Execute(The isort callback should respect custom options):
+ let g:ale_python_isort_options = '--multi-line=3 --trailing-comma'
+
+ AssertEqual
+ \ 0,
+ \ ale#fixers#isort#Fix(bufnr(''))
+
+ silent execute 'file ' . fnameescape(g:dir . '/python_paths/with_virtualenv/subdir/foo/bar.py')
+ AssertEqual
+ \ {
+ \ 'command': 'cd ' . ale#Escape(ale#path#Simplify(g:dir . '/python_paths/with_virtualenv/subdir/foo')) . ' && '
+ \ . ale#Escape(ale#path#Simplify(g:dir . '/python_paths/with_virtualenv/env/' . b:bin_dir . '/isort'))
+ \ . ' --multi-line=3 --trailing-comma -',
+ \ },
+ \ ale#fixers#isort#Fix(bufnr(''))
diff --git a/test/lsp/test_did_save_event.vader b/test/lsp/test_did_save_event.vader
index 97774372..b696ee4b 100644
--- a/test/lsp/test_did_save_event.vader
+++ b/test/lsp/test_did_save_event.vader
@@ -75,6 +75,7 @@ After:
runtime autoload/ale/completion.vim
runtime autoload/ale/lsp.vim
+ runtime autoload/ale/lsp_linter.vim
Given foobar (Some imaginary filetype):
<contents>
diff --git a/test/lsp/test_lsp_command_formatting.vader b/test/lsp/test_lsp_command_formatting.vader
new file mode 100644
index 00000000..f436397f
--- /dev/null
+++ b/test/lsp/test_lsp_command_formatting.vader
@@ -0,0 +1,37 @@
+Before:
+ runtime autoload/ale/lsp.vim
+
+ let g:args = []
+
+ " Mock the StartProgram function so we can just capture the arguments.
+ function! ale#lsp#StartProgram(...) abort
+ let g:args = a:000
+ endfunction
+
+After:
+ unlet! g:args
+
+ runtime autoload/ale/lsp.vim
+
+Execute(Command formatting should be applied correctly for LSP linters):
+ call ale#lsp_linter#StartLSP(
+ \ bufnr(''),
+ \ {
+ \ 'language_callback': {-> 'x'},
+ \ 'project_root_callback': {-> '/foo/bar'},
+ \ 'lsp': 'stdio',
+ \ 'executable': has('win32') ? 'cmd': 'true',
+ \ 'command': '%e --foo',
+ \ },
+ \ {->0}
+ \)
+
+ if has('win32')
+ AssertEqual
+ \ ['cmd', 'cmd /s/c "cmd --foo"', '/foo/bar'],
+ \ g:args[:2]
+ else
+ AssertEqual
+ \ ['true', [&shell, '-c', '''true'' --foo'], '/foo/bar'],
+ \ g:args[:2]
+ endif
diff --git a/test/test_ale_var.vader b/test/test_ale_var.vader
index fb674d93..5f42fe95 100644
--- a/test/test_ale_var.vader
+++ b/test/test_ale_var.vader
@@ -34,8 +34,3 @@ Execute(ale#Var should return the global variable for unknown variables):
let g:ale_fix_buffer_data = {}
AssertEqual 'abc', ale#Var(1347347, 'some_variable')
-
-Execute(ale#Var should return the global variables when the ALE fix variable is undefined):
- unlet! g:ale_fix_buffer_data
-
- AssertEqual 'abc', ale#Var(1347347, 'some_variable')
diff --git a/test/test_find_references.vader b/test/test_find_references.vader
index c2290ca3..150e0471 100644
--- a/test/test_find_references.vader
+++ b/test/test_find_references.vader
@@ -58,7 +58,7 @@ After:
unlet! g:item_list
unlet! g:preview_called
- runtime autoload/ale/linter.vim
+ runtime autoload/ale/lsp_linter.vim
runtime autoload/ale/lsp.vim
runtime autoload/ale/util.vim
runtime autoload/ale/preview.vim
diff --git a/test/test_format_command.vader b/test/test_format_command.vader
index f6143a5a..71285efa 100644
--- a/test/test_format_command.vader
+++ b/test/test_format_command.vader
@@ -15,10 +15,10 @@ After:
delfunction CheckTempFile
Execute(FormatCommand should do nothing to basic command strings):
- AssertEqual ['', 'awesome-linter do something'], ale#command#FormatCommand(bufnr('%'), 'awesome-linter do something', 0)
+ AssertEqual ['', 'awesome-linter do something'], ale#command#FormatCommand(bufnr('%'), '', 'awesome-linter do something', 0)
Execute(FormatCommand should handle %%, and ignore other percents):
- AssertEqual ['', '% %%d %%f %x %'], ale#command#FormatCommand(bufnr('%'), '%% %%%d %%%f %x %', 0)
+ AssertEqual ['', '% %%d %%f %x %'], ale#command#FormatCommand(bufnr('%'), '', '%% %%%d %%%f %x %', 0)
Execute(FormatCommand should convert %s to the current filename):
AssertEqual
@@ -26,10 +26,10 @@ Execute(FormatCommand should convert %s to the current filename):
\ '',
\ 'foo ' . ale#Escape(expand('%:p')) . ' bar ' . ale#Escape(expand('%:p'))
\ ],
- \ ale#command#FormatCommand(bufnr('%'), 'foo %s bar %s', 0)
+ \ ale#command#FormatCommand(bufnr('%'), '', 'foo %s bar %s', 0)
Execute(FormatCommand should convert %t to a new temporary filename):
- let g:result = ale#command#FormatCommand(bufnr('%'), 'foo %t bar %t', 0)
+ let g:result = ale#command#FormatCommand(bufnr('%'), '', 'foo %t bar %t', 0)
call CheckTempFile(g:result[0])
@@ -43,7 +43,7 @@ Execute(FormatCommand should convert %t to a new temporary filename):
AssertEqual g:match[1], g:match[2]
Execute(FormatCommand should let you combine %s and %t):
- let g:result = ale#command#FormatCommand(bufnr('%'), 'foo %t bar %s', 0)
+ let g:result = ale#command#FormatCommand(bufnr('%'), '', 'foo %t bar %s', 0)
call CheckTempFile(g:result[0])
@@ -56,11 +56,34 @@ Execute(FormatCommand should let you combine %s and %t):
" The second item should be equal to the original filename.
AssertEqual ale#Escape(expand('%:p')), g:match[2]
+Execute(FormatCommand should replace %e with the escaped executable):
+ if has('win32')
+ AssertEqual
+ \ ['', 'foo foo'],
+ \ ale#command#FormatCommand(bufnr('%'), 'foo', '%e %e', 0)
+ AssertEqual
+ \ ['', '"foo bar"'],
+ \ ale#command#FormatCommand(bufnr('%'), 'foo bar', '%e', 0)
+ AssertEqual
+ \ ['', '%e %e'],
+ \ ale#command#FormatCommand(bufnr('%'), '', '%e %e', 0)
+ else
+ AssertEqual
+ \ ['', '''foo'' ''foo'''],
+ \ ale#command#FormatCommand(bufnr('%'), 'foo', '%e %e', 0)
+ AssertEqual
+ \ ['', '''foo bar'''],
+ \ ale#command#FormatCommand(bufnr('%'), 'foo bar', '%e', 0)
+ AssertEqual
+ \ ['', '%e %e'],
+ \ ale#command#FormatCommand(bufnr('%'), '', '%e %e', 0)
+ endif
+
Execute(EscapeCommandPart should escape all percent signs):
AssertEqual '%%s %%t %%%% %%s %%t %%%%', ale#engine#EscapeCommandPart('%s %t %% %s %t %%')
Execute(EscapeCommandPart should pipe in temporary files appropriately):
- let g:result = ale#command#FormatCommand(bufnr('%'), 'foo bar', 1)
+ let g:result = ale#command#FormatCommand(bufnr('%'), '', 'foo bar', 1)
call CheckTempFile(g:result[0])
@@ -68,7 +91,7 @@ Execute(EscapeCommandPart should pipe in temporary files appropriately):
Assert !empty(g:match), 'No match found! Result was: ' . g:result[1]
AssertEqual ale#Escape(g:result[0]), g:match[1]
- let g:result = ale#command#FormatCommand(bufnr('%'), 'foo bar %t', 1)
+ let g:result = ale#command#FormatCommand(bufnr('%'), '', 'foo bar %t', 1)
call CheckTempFile(g:result[0])
diff --git a/test/test_go_to_definition.vader b/test/test_go_to_definition.vader
index 78373a65..749f4d7e 100644
--- a/test/test_go_to_definition.vader
+++ b/test/test_go_to_definition.vader
@@ -48,7 +48,7 @@ After:
unlet! g:expr_list
unlet! b:ale_linters
- runtime autoload/ale/linter.vim
+ runtime autoload/ale/lsp_linter.vim
runtime autoload/ale/lsp.vim
runtime autoload/ale/util.vim
diff --git a/test/test_hover.vader b/test/test_hover.vader
index 15f164f0..a18fc651 100644
--- a/test/test_hover.vader
+++ b/test/test_hover.vader
@@ -61,7 +61,7 @@ After:
delfunction HandleValidLSPResult
- runtime autoload/ale/linter.vim
+ runtime autoload/ale/lsp_linter.vim
runtime autoload/ale/lsp.vim
runtime autoload/ale/util.vim
diff --git a/test/test_linter_defintion_processing.vader b/test/test_linter_defintion_processing.vader
index 48a4a394..f0ec023a 100644
--- a/test/test_linter_defintion_processing.vader
+++ b/test/test_linter_defintion_processing.vader
@@ -5,11 +5,11 @@ After:
unlet g:linter
Execute (PreProcess should throw when the linter object is not a Dictionary):
- AssertThrows call ale#linter#PreProcess('')
+ AssertThrows call ale#linter#PreProcess('testft', '')
AssertEqual 'The linter object must be a Dictionary', g:vader_exception
Execute (PreProcess should throw when there is no name):
- AssertThrows call ale#linter#PreProcess({
+ AssertThrows call ale#linter#PreProcess('testft', {
\ 'callback': 'SomeFunction',
\ 'executable': 'echo',
\ 'command': 'echo',
@@ -17,7 +17,7 @@ Execute (PreProcess should throw when there is no name):
AssertEqual '`name` must be defined to name the linter', g:vader_exception
Execute (PreProcess should throw when there is no callback):
- AssertThrows call ale#linter#PreProcess({
+ AssertThrows call ale#linter#PreProcess('testft', {
\ 'name': 'foo',
\ 'executable': 'echo',
\ 'command': 'echo',
@@ -25,7 +25,7 @@ Execute (PreProcess should throw when there is no callback):
AssertEqual '`callback` must be defined with a callback to accept output', g:vader_exception
Execute (PreProcess should throw when then callback is not a function):
- AssertThrows call ale#linter#PreProcess({
+ AssertThrows call ale#linter#PreProcess('testft', {
\ 'name': 'foo',
\ 'callback': 1,
\ 'executable': 'echo',
@@ -34,7 +34,7 @@ Execute (PreProcess should throw when then callback is not a function):
AssertEqual '`callback` must be defined with a callback to accept output', g:vader_exception
Execute (PreProcess should throw when there is no executable or executable_callback):
- AssertThrows call ale#linter#PreProcess({
+ AssertThrows call ale#linter#PreProcess('testft', {
\ 'name': 'foo',
\ 'callback': 'SomeFunction',
\ 'command': 'echo',
@@ -42,7 +42,7 @@ Execute (PreProcess should throw when there is no executable or executable_callb
AssertEqual 'Either `executable` or `executable_callback` must be defined', g:vader_exception
Execute (PreProcess should throw when executable is not a string):
- AssertThrows call ale#linter#PreProcess({
+ AssertThrows call ale#linter#PreProcess('testft', {
\ 'name': 'foo',
\ 'callback': 'SomeFunction',
\ 'executable': 123,
@@ -51,7 +51,7 @@ Execute (PreProcess should throw when executable is not a string):
AssertEqual '`executable` must be a string if defined', g:vader_exception
Execute (PreProcess should throw when executable_callback is not a callback):
- AssertThrows call ale#linter#PreProcess({
+ AssertThrows call ale#linter#PreProcess('testft', {
\ 'name': 'foo',
\ 'callback': 'SomeFunction',
\ 'executable_callback': 123,
@@ -60,7 +60,7 @@ Execute (PreProcess should throw when executable_callback is not a callback):
AssertEqual '`executable_callback` must be a callback if defined', g:vader_exception
Execute (PreProcess should throw when there is no command):
- AssertThrows call ale#linter#PreProcess({
+ AssertThrows call ale#linter#PreProcess('testft', {
\ 'name': 'foo',
\ 'callback': 'SomeFunction',
\ 'executable': 'echo',
@@ -68,7 +68,7 @@ Execute (PreProcess should throw when there is no command):
AssertEqual 'Either `command`, `executable_callback`, `command_chain` must be defined', g:vader_exception
Execute (PreProcess should throw when command is not a string):
- AssertThrows call ale#linter#PreProcess({
+ AssertThrows call ale#linter#PreProcess('testft', {
\ 'name': 'foo',
\ 'callback': 'SomeFunction',
\ 'executable': 'echo',
@@ -77,7 +77,7 @@ Execute (PreProcess should throw when command is not a string):
AssertEqual '`command` must be a string if defined', g:vader_exception
Execute (PreProcess should throw when command_callback is not a callback):
- AssertThrows call ale#linter#PreProcess({
+ AssertThrows call ale#linter#PreProcess('testft', {
\ 'name': 'foo',
\ 'callback': 'SomeFunction',
\ 'executable': 'echo',
@@ -86,7 +86,7 @@ Execute (PreProcess should throw when command_callback is not a callback):
AssertEqual '`command_callback` must be a callback if defined', g:vader_exception
Execute (PreProcess should when the output stream isn't a valid string):
- AssertThrows call ale#linter#PreProcess({
+ AssertThrows call ale#linter#PreProcess('testft', {
\ 'name': 'foo',
\ 'callback': 'SomeFunction',
\ 'executable': 'echo',
@@ -96,7 +96,7 @@ Execute (PreProcess should when the output stream isn't a valid string):
AssertEqual "`output_stream` must be 'stdout', 'stderr', or 'both'", g:vader_exception
Execute (PreProcess should not throw when everything is correct):
- call ale#linter#PreProcess({
+ call ale#linter#PreProcess('testft', {
\ 'name': 'foo',
\ 'callback': 'SomeFunction',
\ 'executable': 'echo',
@@ -104,7 +104,7 @@ Execute (PreProcess should not throw when everything is correct):
\})
Execute (PreProcess should accept an stdout output_stream):
- call ale#linter#PreProcess({
+ call ale#linter#PreProcess('testft', {
\ 'name': 'foo',
\ 'callback': 'SomeFunction',
\ 'executable': 'echo',
@@ -113,7 +113,7 @@ Execute (PreProcess should accept an stdout output_stream):
\})
Execute (PreProcess should accept an stderr output_stream):
- call ale#linter#PreProcess({
+ call ale#linter#PreProcess('testft', {
\ 'name': 'foo',
\ 'callback': 'SomeFunction',
\ 'executable': 'echo',
@@ -122,7 +122,7 @@ Execute (PreProcess should accept an stderr output_stream):
\})
Execute (PreProcess should accept a 'both' output_stream):
- call ale#linter#PreProcess({
+ call ale#linter#PreProcess('testft', {
\ 'name': 'foo',
\ 'callback': 'SomeFunction',
\ 'executable': 'echo',
@@ -137,7 +137,7 @@ Execute(PreProcess should complain if the command_chain is not a List):
\ 'executable': 'x',
\ 'command_chain': 'x',
\}
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual '`command_chain` must be a List', g:vader_exception
Execute(PreProcess should complain if the command_chain is empty):
@@ -147,7 +147,7 @@ Execute(PreProcess should complain if the command_chain is empty):
\ 'executable': 'x',
\ 'command_chain': [],
\}
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual '`command_chain` must contain at least one item', g:vader_exception
Execute(PreProcess should complain if the command_chain has no callback):
@@ -157,7 +157,7 @@ Execute(PreProcess should complain if the command_chain has no callback):
\ 'executable': 'x',
\ 'command_chain': [{}],
\}
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual 'The `command_chain` item 0 must define a `callback` function', g:vader_exception
Execute(PreProcess should complain if the command_chain callback is not a function):
@@ -167,7 +167,7 @@ Execute(PreProcess should complain if the command_chain callback is not a functi
\ 'executable': 'x',
\ 'command_chain': [{'callback': 2}],
\}
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual 'The `command_chain` item 0 must define a `callback` function', g:vader_exception
Execute(PreProcess should accept a chain with one callback):
@@ -177,7 +177,7 @@ Execute(PreProcess should accept a chain with one callback):
\ 'executable': 'x',
\ 'command_chain': [{'callback': 'foo'}],
\}
- call ale#linter#PreProcess(g:linter)
+ call ale#linter#PreProcess('testft', g:linter)
Execute(PreProcess should complain about invalid output_stream values in the chain):
let g:linter = {
@@ -186,7 +186,7 @@ Execute(PreProcess should complain about invalid output_stream values in the cha
\ 'executable': 'x',
\ 'command_chain': [{'callback': 'foo', 'output_stream': ''}],
\}
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual "The `command_chain` item 0 `output_stream` flag must be 'stdout', 'stderr', or 'both'", g:vader_exception
Execute(PreProcess should complain about valid output_stream values in the chain):
@@ -196,11 +196,11 @@ Execute(PreProcess should complain about valid output_stream values in the chain
\ 'executable': 'x',
\ 'command_chain': [{'callback': 'foo', 'output_stream': 'stdout'}],
\}
- call ale#linter#PreProcess(g:linter)
+ call ale#linter#PreProcess('testft', g:linter)
let g:linter.command_chain[0].output_stream = 'stderr'
- call ale#linter#PreProcess(g:linter)
+ call ale#linter#PreProcess('testft', g:linter)
let g:linter.command_chain[0].output_stream = 'both'
- call ale#linter#PreProcess(g:linter)
+ call ale#linter#PreProcess('testft', g:linter)
Execute(PreProcess should complain about invalid chain items at higher indices):
let g:linter = {
@@ -209,7 +209,7 @@ Execute(PreProcess should complain about invalid chain items at higher indices):
\ 'executable': 'x',
\ 'command_chain': [{'callback': 'foo'}, {'callback': 123}],
\}
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual 'The `command_chain` item 1 must define a `callback` function', g:vader_exception
Execute(PreProcess should complain when conflicting command options are used):
@@ -220,19 +220,19 @@ Execute(PreProcess should complain when conflicting command options are used):
\ 'command': 'foo',
\ 'command_chain': [{'callback': 'foo'}],
\}
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual 'Only one of `command`, `command_callback`, or `command_chain` should be set', g:vader_exception
unlet g:linter.command
let g:linter.command_callback = 'foo'
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual 'Only one of `command`, `command_callback`, or `command_chain` should be set', g:vader_exception
let g:linter.command = 'foo'
unlet g:linter.command_chain
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual 'Only one of `command`, `command_callback`, or `command_chain` should be set', g:vader_exception
Execute(PreProcess should process the read_buffer option correctly):
@@ -244,35 +244,35 @@ Execute(PreProcess should process the read_buffer option correctly):
\ 'read_buffer': '0',
\}
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual '`read_buffer` must be `0` or `1`', g:vader_exception
let g:linter.read_buffer = 0
- call ale#linter#PreProcess(g:linter)
+ call ale#linter#PreProcess('testft', g:linter)
let g:linter.read_buffer = 1
- call ale#linter#PreProcess(g:linter)
+ call ale#linter#PreProcess('testft', g:linter)
unlet g:linter.read_buffer
let g:linter.command_chain[0].read_buffer = '0'
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual 'The `command_chain` item 0 value for `read_buffer` must be `0` or `1`', g:vader_exception
let g:linter.command_chain[0].read_buffer = 0
- call ale#linter#PreProcess(g:linter)
+ call ale#linter#PreProcess('testft', g:linter)
let g:linter.command_chain[1].read_buffer = '0'
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual 'The `command_chain` item 1 value for `read_buffer` must be `0` or `1`', g:vader_exception
let g:linter.command_chain[1].read_buffer = 1
- call ale#linter#PreProcess(g:linter)
+ call ale#linter#PreProcess('testft', g:linter)
Execute(PreProcess should set a default value for read_buffer):
let g:linter = {
@@ -282,7 +282,7 @@ Execute(PreProcess should set a default value for read_buffer):
\ 'command': 'x',
\}
- AssertEqual 1, ale#linter#PreProcess(g:linter).read_buffer
+ AssertEqual 1, ale#linter#PreProcess('testft', g:linter).read_buffer
Execute(PreProcess should process the lint_file option correctly):
let g:linter = {
@@ -293,25 +293,25 @@ Execute(PreProcess should process the lint_file option correctly):
\ 'lint_file': 'x',
\}
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual '`lint_file` must be `0` or `1`', g:vader_exception
let g:linter.lint_file = 0
- AssertEqual 0, ale#linter#PreProcess(g:linter).lint_file
+ AssertEqual 0, ale#linter#PreProcess('testft', g:linter).lint_file
" The default for read_buffer should be 1 when lint_file is 0
- AssertEqual 1, ale#linter#PreProcess(g:linter).read_buffer
+ AssertEqual 1, ale#linter#PreProcess('testft', g:linter).read_buffer
let g:linter.lint_file = 1
- AssertEqual 1, ale#linter#PreProcess(g:linter).lint_file
+ AssertEqual 1, ale#linter#PreProcess('testft', g:linter).lint_file
" The default for read_buffer should change to 0 when lint_file is 1.
- AssertEqual 0, ale#linter#PreProcess(g:linter).read_buffer
+ AssertEqual 0, ale#linter#PreProcess('testft', g:linter).read_buffer
let g:linter.read_buffer = 1
" We shouldn't be able to set both options to 1 at the same time.
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual 'Only one of `lint_file` or `read_buffer` can be `1`', g:vader_exception
Execute(PreProcess should set a default value for lint_file):
@@ -322,7 +322,7 @@ Execute(PreProcess should set a default value for lint_file):
\ 'command': 'x',
\}
- AssertEqual 0, ale#linter#PreProcess(g:linter).lint_file
+ AssertEqual 0, ale#linter#PreProcess('testft', g:linter).lint_file
Execute(PreProcess should set a default value for aliases):
let g:linter = {
@@ -332,7 +332,7 @@ Execute(PreProcess should set a default value for aliases):
\ 'command': 'x',
\}
- AssertEqual [], ale#linter#PreProcess(g:linter).aliases
+ AssertEqual [], ale#linter#PreProcess('testft', g:linter).aliases
Execute(PreProcess should complain about invalid `aliases` values):
let g:linter = {
@@ -343,12 +343,12 @@ Execute(PreProcess should complain about invalid `aliases` values):
\ 'aliases': 'foo',
\}
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual '`aliases` must be a List of String values', g:vader_exception
let g:linter.aliases = [1]
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual '`aliases` must be a List of String values', g:vader_exception
Execute(PreProcess should accept `aliases` lists):
@@ -360,11 +360,11 @@ Execute(PreProcess should accept `aliases` lists):
\ 'aliases': [],
\}
- AssertEqual [], ale#linter#PreProcess(g:linter).aliases
+ AssertEqual [], ale#linter#PreProcess('testft', g:linter).aliases
let g:linter.aliases = ['foo', 'bar']
- AssertEqual ['foo', 'bar'], ale#linter#PreProcess(g:linter).aliases
+ AssertEqual ['foo', 'bar'], ale#linter#PreProcess('testft', g:linter).aliases
Execute(PreProcess should accept tsserver LSP configuration):
let g:linter = {
@@ -376,17 +376,17 @@ Execute(PreProcess should accept tsserver LSP configuration):
\ 'project_root_callback': 'x',
\}
- AssertEqual 'tsserver', ale#linter#PreProcess(g:linter).lsp
+ AssertEqual 'tsserver', ale#linter#PreProcess('testft', g:linter).lsp
call remove(g:linter, 'executable')
let g:linter.executable_callback = 'X'
- call ale#linter#PreProcess(g:linter)
+ call ale#linter#PreProcess('testft', g:linter)
call remove(g:linter, 'command')
let g:linter.command_callback = 'X'
- call ale#linter#PreProcess(g:linter)
+ call ale#linter#PreProcess('testft', g:linter)
Execute(PreProcess should accept stdio LSP configuration):
let g:linter = {
@@ -398,17 +398,17 @@ Execute(PreProcess should accept stdio LSP configuration):
\ 'project_root_callback': 'x',
\}
- AssertEqual 'stdio', ale#linter#PreProcess(g:linter).lsp
+ AssertEqual 'stdio', ale#linter#PreProcess('testft', g:linter).lsp
call remove(g:linter, 'executable')
let g:linter.executable_callback = 'X'
- call ale#linter#PreProcess(g:linter)
+ call ale#linter#PreProcess('testft', g:linter)
call remove(g:linter, 'command')
let g:linter.command_callback = 'X'
- call ale#linter#PreProcess(g:linter)
+ call ale#linter#PreProcess('testft', g:linter)
Execute(PreProcess should accept LSP server configurations):
let g:linter = {
@@ -419,7 +419,7 @@ Execute(PreProcess should accept LSP server configurations):
\ 'project_root_callback': 'x',
\}
- AssertEqual 'socket', ale#linter#PreProcess(g:linter).lsp
+ AssertEqual 'socket', ale#linter#PreProcess('testft', g:linter).lsp
Execute(PreProcess should accept let you specify the language as just a string):
let g:linter = {
@@ -430,7 +430,7 @@ Execute(PreProcess should accept let you specify the language as just a string):
\ 'project_root_callback': 'x',
\}
- AssertEqual 'foobar', ale#linter#PreProcess(g:linter).language_callback(0)
+ AssertEqual 'foobar', ale#linter#PreProcess('testft', g:linter).language_callback(0)
Execute(PreProcess should complain about using language and language_callback together):
let g:linter = {
@@ -442,16 +442,26 @@ Execute(PreProcess should complain about using language and language_callback to
\ 'project_root_callback': 'x',
\}
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual 'Only one of `language` or `language_callback` should be set', g:vader_exception
+Execute(PreProcess should use the filetype as the language string by default):
+ let g:linter = {
+ \ 'name': 'x',
+ \ 'lsp': 'socket',
+ \ 'address_callback': 'X',
+ \ 'project_root_callback': 'x',
+ \}
+
+ AssertEqual 'testft', ale#linter#PreProcess('testft', g:linter).language_callback(0)
+
Execute(PreProcess should require an address_callback for LSP socket configurations):
let g:linter = {
\ 'name': 'x',
\ 'lsp': 'socket',
\}
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual '`address_callback` must be defined for getting the LSP address', g:vader_exception
Execute(PreProcess should complain about address_callback for non-LSP linters):
@@ -463,7 +473,7 @@ Execute(PreProcess should complain about address_callback for non-LSP linters):
\ 'address_callback': 'X',
\}
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual '`address_callback` cannot be used when lsp != ''socket''', g:vader_exception
Execute(PreProcess should complain about using initialization_options and initialization_options_callback together):
@@ -477,11 +487,11 @@ Execute(PreProcess should complain about using initialization_options and initia
\ 'initialization_options_callback': 'x',
\}
- AssertThrows call ale#linter#PreProcess(g:linter)
+ AssertThrows call ale#linter#PreProcess('testft', g:linter)
AssertEqual 'Only one of `initialization_options` or `initialization_options_callback` should be set', g:vader_exception
Execute (PreProcess should throw when initialization_options_callback is not a callback):
- AssertThrows call ale#linter#PreProcess({
+ AssertThrows call ale#linter#PreProcess('testft', {
\ 'name': 'foo',
\ 'lsp': 'socket',
\ 'address_callback': 'X',