summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_syntax.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_syntax.py')
-rw-r--r--Lib/test/test_syntax.py61
1 files changed, 2 insertions, 59 deletions
diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py
index b978838..491f7fd 100644
--- a/Lib/test/test_syntax.py
+++ b/Lib/test/test_syntax.py
@@ -1853,28 +1853,6 @@ Corner-cases that used to crash:
Traceback (most recent call last):
SyntaxError: positional patterns follow keyword patterns
-Non-matching 'elif'/'else' statements:
-
- >>> if a == b:
- ... ...
- ... elif a == c:
- Traceback (most recent call last):
- SyntaxError: 'elif' must match an if-statement here
-
- >>> if x == y:
- ... ...
- ... else:
- Traceback (most recent call last):
- SyntaxError: 'else' must match a valid statement here
-
- >>> elif m == n:
- Traceback (most recent call last):
- SyntaxError: 'elif' must match an if-statement here
-
- >>> else:
- Traceback (most recent call last):
- SyntaxError: 'else' must match a valid statement here
-
Uses of the star operator which should fail:
A[:*b]
@@ -2167,8 +2145,8 @@ class SyntaxTestCase(unittest.TestCase):
lineno=None, offset=None, end_lineno=None, end_offset=None):
"""Check that compiling code raises SyntaxError with errtext.
- errtext is a regular expression that must be present in the
- test of the exception raised. If subclass is specified, it
+ errtest is a regular expression that must be present in the
+ test of the exception raised. If subclass is specified it
is the expected subclass of SyntaxError (e.g. IndentationError).
"""
try:
@@ -2192,22 +2170,6 @@ class SyntaxTestCase(unittest.TestCase):
else:
self.fail("compile() did not raise SyntaxError")
- def _check_noerror(self, code,
- errtext="compile() raised unexpected SyntaxError",
- filename="<testcase>", mode="exec", subclass=None):
- """Check that compiling code does not raise a SyntaxError.
-
- errtext is the message passed to self.fail if there is
- a SyntaxError. If the subclass parameter is specified,
- it is the subclass of SyntaxError (e.g. IndentationError)
- that the raised error is checked against.
- """
- try:
- compile(code, filename, mode)
- except SyntaxError as err:
- if (not subclass) or isinstance(err, subclass):
- self.fail(errtext)
-
def test_expression_with_assignment(self):
self._check_error(
"print(end1 + end2 = ' ')",
@@ -2609,25 +2571,6 @@ while 1:
"""
self._check_error(source, "too many statically nested blocks")
- def test_syntax_error_non_matching_elif_else_statements(self):
- # Check bpo-45759: 'elif' statements that doesn't match an
- # if-statement or 'else' statements that doesn't match any
- # valid else-able statement (e.g. 'while')
- self._check_error(
- "elif m == n:\n ...",
- "'elif' must match an if-statement here")
- self._check_error(
- "else:\n ...",
- "'else' must match a valid statement here")
- self._check_noerror("if a == b:\n ...\nelif a == c:\n ...")
- self._check_noerror("if x == y:\n ...\nelse:\n ...")
- self._check_error(
- "else = 123",
- "invalid syntax")
- self._check_error(
- "elif 55 = 123",
- "cannot assign to literal here")
-
@support.cpython_only
def test_error_on_parser_stack_overflow(self):
source = "-" * 100000 + "4"