diff options
| author | Anthony Sottile <asottile@umich.edu> | 2021-04-18 10:04:13 -0700 |
|---|---|---|
| committer | Anthony Sottile <asottile@umich.edu> | 2021-04-18 10:08:11 -0700 |
| commit | 456e98486ecb912aba01f31859c5f74a5a4d3f81 (patch) | |
| tree | 2a2b60b425910a94366088a31187a371047c55b6 /tests/integration | |
| parent | 645cd71f571da1cdc42683cf4228b537ddc2685f (diff) | |
| download | flake8-456e98486ecb912aba01f31859c5f74a5a4d3f81.tar.gz | |
short circuit on ast error before tokenization error
Diffstat (limited to 'tests/integration')
| -rw-r--r-- | tests/integration/test_main.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/tests/integration/test_main.py b/tests/integration/test_main.py index 45fe9de..5c99d3c 100644 --- a/tests/integration/test_main.py +++ b/tests/integration/test_main.py @@ -1,6 +1,7 @@ """Integration tests for the main entrypoint of flake8.""" import json import os +import sys from unittest import mock import pytest @@ -186,8 +187,15 @@ def test_tokenization_error_but_not_syntax_error(tmpdir, capsys): tmpdir.join("t.py").write("b'foo' \\\n") _call_main(["t.py"], retv=1) + if hasattr(sys, "pypy_version_info"): # pragma: no cover (pypy) + expected = "t.py:2:1: E999 SyntaxError: end of file (EOF) in multi-line statement\n" # noqa: E501 + elif sys.version_info < (3, 8): # pragma: no cover (<cp38) + expected = "t.py:2:1: E902 TokenError: EOF in multi-line statement\n" + else: # pragma: no cover (cp38+) + expected = "t.py:1:8: E999 SyntaxError: unexpected EOF while parsing\n" + out, err = capsys.readouterr() - assert out == "t.py:1:1: E902 TokenError: EOF in multi-line statement\n" + assert out == expected assert err == "" @@ -197,8 +205,12 @@ def test_tokenization_error_is_a_syntax_error(tmpdir, capsys): tmpdir.join("t.py").write("if True:\n pass\n pass\n") _call_main(["t.py"], retv=1) + if hasattr(sys, "pypy_version_info"): # pragma: no cover (pypy) + expected = "t.py:3:2: E999 IndentationError: unindent does not match any outer indentation level\n" # noqa: E501 + else: # pragma: no cover (cpython) + expected = "t.py:3:5: E999 IndentationError: unindent does not match any outer indentation level\n" # noqa: E501 + out, err = capsys.readouterr() - expected = "t.py:1:1: E902 IndentationError: unindent does not match any outer indentation level\n" # noqa: E501 assert out == expected assert err == "" |
