Get more tests to pass on Windows

This commit is contained in:
w0rp 2017-09-11 22:25:15 +01:00
parent 8eb99c3cec
commit a7614d9502
6 changed files with 50 additions and 34 deletions

View file

@ -1,6 +1,14 @@
Before: Before:
let b:tmp = has('win32') ? substitute($TMP, '\\', '\\\\', 'g') : $TMPDIR
runtime ale_linters/elm/make.vim runtime ale_linters/elm/make.vim
After:
unlet! b:tmp
unlet! g:config_error_lines
call ale#linter#Reset()
Execute(The elm-make handler should parse lines correctly): Execute(The elm-make handler should parse lines correctly):
AssertEqual AssertEqual
\ [ \ [
@ -42,8 +50,8 @@ Execute(The elm-make handler should parse lines correctly):
\ }, \ },
\ ], \ ],
\ ale_linters#elm#make#Handle(347, [ \ ale_linters#elm#make#Handle(347, [
\ '[{"tag":"unused import","overview":"warning overview","details":"warning details","region":{"start":{"line":33,"column":1},"end":{"line":33,"column":19}},"type":"warning","file":"' . $TMPDIR . 'Module.elm"}]', \ '[{"tag":"unused import","overview":"warning overview","details":"warning details","region":{"start":{"line":33,"column":1},"end":{"line":33,"column":19}},"type":"warning","file":"' . b:tmp . 'Module.elm"}]',
\ '[{"tag":"TYPE MISMATCH","overview":"error overview 1","subregion":{"start":{"line":406,"column":5},"end":{"line":408,"column":18}},"details":"error details 1","region":{"start":{"line":404,"column":1},"end":{"line":408,"column":18}},"type":"error","file":"' . $TMPDIR . 'Module.elm"},{"tag":"TYPE MISMATCH","overview":"error overview 2","subregion":{"start":{"line":407,"column":12},"end":{"line":407,"column":17}},"details":"error details 2","region":{"start":{"line":406,"column":5},"end":{"line":407,"column":17}},"type":"error","file":"' . $TMPDIR . 'Module.elm"},{"tag":"TYPE MISMATCH","overview":"error overview 3","subregion":{"start":{"line":406,"column":88},"end":{"line":406,"column":93}},"details":"error details 3","region":{"start":{"line":406,"column":5},"end":{"line":406,"column":93}},"type":"error","file":"' . $TMPDIR . 'Module.elm"}]' \ '[{"tag":"TYPE MISMATCH","overview":"error overview 1","subregion":{"start":{"line":406,"column":5},"end":{"line":408,"column":18}},"details":"error details 1","region":{"start":{"line":404,"column":1},"end":{"line":408,"column":18}},"type":"error","file":"' . b:tmp . 'Module.elm"},{"tag":"TYPE MISMATCH","overview":"error overview 2","subregion":{"start":{"line":407,"column":12},"end":{"line":407,"column":17}},"details":"error details 2","region":{"start":{"line":406,"column":5},"end":{"line":407,"column":17}},"type":"error","file":"' . b:tmp . 'Module.elm"},{"tag":"TYPE MISMATCH","overview":"error overview 3","subregion":{"start":{"line":406,"column":88},"end":{"line":406,"column":93}},"details":"error details 3","region":{"start":{"line":406,"column":5},"end":{"line":406,"column":93}},"type":"error","file":"' . b:tmp . 'Module.elm"}]'
\ ]) \ ])
Execute(The elm-make handler should put an error on the first line if a line cannot be parsed): Execute(The elm-make handler should put an error on the first line if a line cannot be parsed):
@ -66,11 +74,7 @@ Execute(The elm-make handler should put an error on the first line if a line can
\ }, \ },
\ ], \ ],
\ ale_linters#elm#make#Handle(347, [ \ ale_linters#elm#make#Handle(347, [
\ '[{"tag":"unused import","overview":"warning overview","details":"warning details","region":{"start":{"line":33,"column":1},"end":{"line":33,"column":19}},"type":"warning","file":"' . $TMPDIR . 'Module.elm"}]', \ '[{"tag":"unused import","overview":"warning overview","details":"warning details","region":{"start":{"line":33,"column":1},"end":{"line":33,"column":19}},"type":"warning","file":"' . b:tmp . 'Module.elm"}]',
\ "Not JSON", \ "Not JSON",
\ "Also not JSON", \ "Also not JSON",
\ ]) \ ])
After:
unlet! g:config_error_lines
call ale#linter#Reset()

View file

@ -36,11 +36,11 @@ Execute(The ghc handler should handle ghc 8 output):
\ ], \ ],
\ ale#handlers#haskell#HandleGHCFormat(bufnr(''), [ \ ale#handlers#haskell#HandleGHCFormat(bufnr(''), [
\ '', \ '',
\ 'src/Appoint/Lib.hs:6:1: error:', \ ale#path#Winify('src/Appoint/Lib.hs') . ':6:1: error:',
\ ' Failed to load interface for GitHub.Data', \ ' Failed to load interface for GitHub.Data',
\ ' Use -v to see a list of the files searched for.', \ ' Use -v to see a list of the files searched for.',
\ '', \ '',
\ 'src/Appoint/Lib.hs:7:1: warning:', \ ale#path#Winify('src/Appoint/Lib.hs') . ':7:1: warning:',
\ ' Failed to load interface for GitHub.Endpoints.PullRequests', \ ' Failed to load interface for GitHub.Endpoints.PullRequests',
\ ' Use -v to see a list of the files searched for.', \ ' Use -v to see a list of the files searched for.',
\ ]) \ ])
@ -70,9 +70,9 @@ Execute(The ghc handler should handle ghc 7 output):
\ }, \ },
\ ], \ ],
\ ale#handlers#haskell#HandleGHCFormat(bufnr(''), [ \ ale#handlers#haskell#HandleGHCFormat(bufnr(''), [
\ 'src/Main.hs:168:1:', \ ale#path#Winify('src/Main.hs') . ':168:1:',
\ ' parse error (possibly incorrect indentation or mismatched brackets)', \ ' parse error (possibly incorrect indentation or mismatched brackets)',
\ 'src/Main.hs:84:1:Warning: Top-level binding with no type signature:^@ myLayout :: Choose Tall (Choose (Mirror Tall) Full) a', \ ale#path#Winify('src/Main.hs') . ':84:1:Warning: Top-level binding with no type signature:^@ myLayout :: Choose Tall (Choose (Mirror Tall) Full) a',
\ 'src/Main.hs:94:5:Error:', \ ale#path#Winify('src/Main.hs') . ':94:5:Error:',
\ ' Some other error', \ ' Some other error',
\ ]) \ ])

View file

@ -1,6 +1,16 @@
Before: Before:
Save $TMPDIR
" Set TMPDIR so the temporary file checks work.
let $TMPDIR = '/tmp'
runtime ale_linters/idris/idris.vim runtime ale_linters/idris/idris.vim
After:
Restore
call ale#linter#Reset()
Execute(The idris handler should parse messages that reference a single column): Execute(The idris handler should parse messages that reference a single column):
call ale#test#SetFilename('/tmp/foo.idr') call ale#test#SetFilename('/tmp/foo.idr')

View file

@ -1,64 +1,66 @@
Before: Before:
runtime ale_linters/python/mypy.vim runtime ale_linters/python/mypy.vim
call ale#test#SetDirectory('/testplugin/test/handler')
After: After:
call ale#test#RestoreDirectory()
call ale#linter#Reset() call ale#linter#Reset()
silent file something_else.py
Execute(The mypy handler should parse lines correctly): Execute(The mypy handler should parse lines correctly):
silent file foo/bar/__init__.py call ale#test#SetFilename('__init__.py')
AssertEqual AssertEqual
\ [ \ [
\ { \ {
\ 'lnum': 768, \ 'lnum': 768,
\ 'col': 38, \ 'col': 38,
\ 'filename': 'foo/bar/foo/bar/baz.py', \ 'filename': ale#path#Winify(g:dir . '/baz.py'),
\ 'type': 'E', \ 'type': 'E',
\ 'text': 'Cannot determine type of ''SOME_SYMBOL''', \ 'text': 'Cannot determine type of ''SOME_SYMBOL''',
\ }, \ },
\ { \ {
\ 'lnum': 821, \ 'lnum': 821,
\ 'col': 38, \ 'col': 38,
\ 'filename': 'foo/bar/foo/bar/baz.py', \ 'filename': ale#path#Winify(g:dir . '/baz.py'),
\ 'type': 'E', \ 'type': 'E',
\ 'text': 'Cannot determine type of ''SOME_SYMBOL''', \ 'text': 'Cannot determine type of ''SOME_SYMBOL''',
\ }, \ },
\ { \ {
\ 'lnum': 38, \ 'lnum': 38,
\ 'col': 44, \ 'col': 44,
\ 'filename': 'foo/bar/foo/bar/other.py', \ 'filename': ale#path#Winify(g:dir . '/other.py'),
\ 'type': 'E', \ 'type': 'E',
\ 'text': 'Cannot determine type of ''ANOTHER_SYMBOL''', \ 'text': 'Cannot determine type of ''ANOTHER_SYMBOL''',
\ }, \ },
\ { \ {
\ 'lnum': 15, \ 'lnum': 15,
\ 'col': 3, \ 'col': 3,
\ 'filename': 'foo/bar/foo/bar/__init__.py', \ 'filename': ale#path#Winify(g:dir . '/__init__.py'),
\ 'type': 'E', \ 'type': 'E',
\ 'text': 'Argument 1 to "somefunc" has incompatible type "int"; expected "str"' \ 'text': 'Argument 1 to "somefunc" has incompatible type "int"; expected "str"'
\ }, \ },
\ { \ {
\ 'lnum': 72, \ 'lnum': 72,
\ 'col': 1, \ 'col': 1,
\ 'filename': 'foo/bar/foo/bar/__init__.py', \ 'filename': ale#path#Winify(g:dir . '/__init__.py'),
\ 'type': 'W', \ 'type': 'W',
\ 'text': 'Some warning', \ 'text': 'Some warning',
\ }, \ },
\ ], \ ],
\ ale_linters#python#mypy#Handle(bufnr(''), [ \ ale_linters#python#mypy#Handle(bufnr(''), [
\ 'foo/bar/baz.py: note: In class "SomeClass":', \ 'baz.py: note: In class "SomeClass":',
\ 'foo/bar/baz.py:768:38: error: Cannot determine type of ''SOME_SYMBOL''', \ 'baz.py:768:38: error: Cannot determine type of ''SOME_SYMBOL''',
\ 'foo/bar/baz.py: note: In class "AnotherClass":', \ 'baz.py: note: In class "AnotherClass":',
\ 'foo/bar/baz.py:821:38: error: Cannot determine type of ''SOME_SYMBOL''', \ 'baz.py:821:38: error: Cannot determine type of ''SOME_SYMBOL''',
\ 'foo/bar/__init__.py:92: note: In module imported here:', \ '__init__.py:92: note: In module imported here:',
\ 'foo/bar/other.py: note: In class "YetAnotherClass":', \ 'other.py: note: In class "YetAnotherClass":',
\ 'foo/bar/other.py:38:44: error: Cannot determine type of ''ANOTHER_SYMBOL''', \ 'other.py:38:44: error: Cannot determine type of ''ANOTHER_SYMBOL''',
\ 'foo/bar/__init__.py: note: At top level:', \ '__init__.py: note: At top level:',
\ 'foo/bar/__init__.py:15:3: error: Argument 1 to "somefunc" has incompatible type "int"; expected "str"', \ '__init__.py:15:3: error: Argument 1 to "somefunc" has incompatible type "int"; expected "str"',
\ 'another_module/bar.py:14: note: In module imported here,', \ 'another_module/bar.py:14: note: In module imported here,',
\ 'another_module/__init__.py:16: note: ... from here,', \ 'another_module/__init__.py:16: note: ... from here,',
\ 'foo/bar/__init__.py:72:1: warning: Some warning', \ '__init__.py:72:1: warning: Some warning',
\ ]) \ ])
Execute(The mypy handler should handle Windows names with spaces): Execute(The mypy handler should handle Windows names with spaces):

View file

@ -15,9 +15,9 @@ Execute(The Perl linter should ignore errors from other files):
\ {'lnum': '2', 'type': 'E', 'text': 'Compilation failed in require'}, \ {'lnum': '2', 'type': 'E', 'text': 'Compilation failed in require'},
\ ], \ ],
\ ale_linters#perl#perl#Handle(bufnr(''), [ \ ale_linters#perl#perl#Handle(bufnr(''), [
\ 'syntax error at ' . g:dir . '/foo.pm line 4, near "aklsdfjmy "', \ 'syntax error at ' . ale#path#Winify(g:dir . '/foo.pm') . ' line 4, near "aklsdfjmy "',
\ 'Compilation failed in require at ' . g:dir . '/bar.pl line 2.', \ 'Compilation failed in require at ' . ale#path#Winify(g:dir . '/bar.pl') . ' line 2.',
\ 'BEGIN failed--compilation aborted at ' . g:dir . '/bar.pl line 2.', \ 'BEGIN failed--compilation aborted at ' . ale#path#Winify(g:dir . '/bar.pl') . ' line 2.',
\ ]) \ ])
Execute(The Perl linter should complain about failing to locate modules): Execute(The Perl linter should complain about failing to locate modules):

View file

@ -29,11 +29,11 @@ Execute(The rails_best_practices handler should parse JSON correctly):
\ '{', \ '{',
\ '"message": "use local variable",', \ '"message": "use local variable",',
\ '"line_number": "5",', \ '"line_number": "5",',
\ '"filename": "' . g:dir . '/ruby_fixtures/valid_rails_app/app/models/thing.rb"', \ printf('"filename": "%s"', substitute(expand('%:p'), '\\', '\\\\', 'g')),
\ '},{', \ '},{',
\ '"message": "other advice",', \ '"message": "other advice",',
\ '"line_number": "10",', \ '"line_number": "10",',
\ '"filename": "' . g:dir . '/ruby_fixtures/valid_rails_app/app/models/thing.rb"', \ printf('"filename": "%s"', substitute(expand('%:p'), '\\', '\\\\', 'g')),
\ '}', \ '}',
\ ']' \ ']'
\ ]) \ ])