ale/test/handler/test_pycodestyle_handler.vader
w0rp ae1d051504
#4454 Clean up more tests and code
* Remove some tests we no longer need
* Delete blocks of redundant code
* Compress some tests together to simplify them
* Remove a little code for ancient linter versions
* Escape more executables we didn't escape before
* Rename a deno option that didn't match our conventions
2023-09-16 22:23:30 +01:00

154 lines
3.6 KiB
Plaintext

Before:
Save g:ale_warn_about_trailing_blank_lines
Save g:ale_warn_about_trailing_whitespace
let g:ale_warn_about_trailing_blank_lines = 1
let g:ale_warn_about_trailing_whitespace = 1
runtime ale_linters/python/pycodestyle.vim
After:
Restore
unlet! b:ale_warn_about_trailing_blank_lines
unlet! b:ale_warn_about_trailing_whitespace
call ale#linter#Reset()
Execute(The pycodestyle handler should parse output):
AssertEqual
\ [
\ {
\ 'lnum': 8,
\ 'col': 3,
\ 'type': 'E',
\ 'text': 'SyntaxError: invalid syntax',
\ 'code': 'E999',
\ },
\ {
\ 'lnum': 69,
\ 'col': 11,
\ 'text': 'multiple imports on one line',
\ 'code': 'E401',
\ 'type': 'E',
\ 'sub_type': 'style',
\ },
\ {
\ 'lnum': 77,
\ 'col': 1,
\ 'text': 'expected 2 blank lines, found 1',
\ 'code': 'E302',
\ 'type': 'E',
\ 'sub_type': 'style',
\ },
\ {
\ 'lnum': 88,
\ 'col': 5,
\ 'text': 'expected 1 blank line, found 0',
\ 'code': 'E301',
\ 'type': 'E',
\ 'sub_type': 'style',
\ },
\ {
\ 'lnum': 222,
\ 'col': 34,
\ 'text': 'deprecated form of raising exception',
\ 'code': 'W602',
\ 'type': 'W',
\ 'sub_type': 'style',
\ },
\ {
\ 'lnum': 544,
\ 'col': 21,
\ 'text': '.has_key() is deprecated, use ''in''',
\ 'code': 'W601',
\ 'type': 'W',
\ 'sub_type': 'style',
\ },
\ ],
\ ale_linters#python#pycodestyle#Handle(bufnr(''), [
\ 'stdin:8:3: E999 SyntaxError: invalid syntax',
\ 'stdin:69:11: E401 multiple imports on one line',
\ 'stdin:77:1: E302 expected 2 blank lines, found 1',
\ 'stdin:88:5: E301 expected 1 blank line, found 0',
\ 'stdin:222:34: W602 deprecated form of raising exception',
\ 'example.py:544:21: W601 .has_key() is deprecated, use ''in''',
\ ])
Execute(Warnings about trailing whitespace should be reported by default):
AssertEqual
\ [
\ {
\ 'lnum': 6,
\ 'col': 1,
\ 'code': 'W291',
\ 'type': 'W',
\ 'sub_type': 'style',
\ 'text': 'who cares',
\ },
\ {
\ 'lnum': 6,
\ 'col': 1,
\ 'code': 'W293',
\ 'type': 'W',
\ 'sub_type': 'style',
\ 'text': 'who cares',
\ },
\ ],
\ ale_linters#python#pycodestyle#Handle(bufnr(''), [
\ 'foo.py:6:1: W291 who cares',
\ 'foo.py:6:1: W293 who cares',
\ ])
Execute(Disabling trailing whitespace warnings should work):
let b:ale_warn_about_trailing_whitespace = 0
AssertEqual
\ [
\ ],
\ ale_linters#python#pycodestyle#Handle(bufnr(''), [
\ 'foo.py:6:1: W291 who cares',
\ 'foo.py:6:1: W293 who cares',
\ ])
Execute(Warnings about trailing blank lines should be reported by default):
AssertEqual
\ [
\ {
\ 'lnum': 6,
\ 'col': 1,
\ 'code': 'W391',
\ 'type': 'W',
\ 'sub_type': 'style',
\ 'text': 'blank line at end of file',
\ },
\ ],
\ ale_linters#python#pycodestyle#Handle(bufnr(''), [
\ 'foo.py:6:1: W391 blank line at end of file',
\ ])
Execute(Disabling trailing blank line warnings should work):
let b:ale_warn_about_trailing_blank_lines = 0
AssertEqual
\ [
\ ],
\ ale_linters#python#pycodestyle#Handle(bufnr(''), [
\ 'foo.py:6:1: W391 blank line at end of file',
\ ])
Execute(E112 should be a syntax error):
AssertEqual
\ [
\ {
\ 'lnum': 6,
\ 'col': 1,
\ 'code': 'E112',
\ 'type': 'E',
\ 'text': 'expected an indented block',
\ },
\ ],
\ ale_linters#python#pycodestyle#Handle(bufnr(''), [
\ 'foo.py:6:1: E112 expected an indented block',
\ ])