summaryrefslogtreecommitdiff
path: root/tests/integration
diff options
context:
space:
mode:
authorAnthony Sottile <asottile@umich.edu>2021-04-18 10:04:13 -0700
committerAnthony Sottile <asottile@umich.edu>2021-04-18 10:08:11 -0700
commit456e98486ecb912aba01f31859c5f74a5a4d3f81 (patch)
tree2a2b60b425910a94366088a31187a371047c55b6 /tests/integration
parent645cd71f571da1cdc42683cf4228b537ddc2685f (diff)
downloadflake8-456e98486ecb912aba01f31859c5f74a5a4d3f81.tar.gz
short circuit on ast error before tokenization error
Diffstat (limited to 'tests/integration')
-rw-r--r--tests/integration/test_main.py16
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 == ""