[3.9] Fix the test suite for the old parser (GH-27749)

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
This commit is contained in:
Pablo Galindo Salgado 2021-08-13 11:26:07 +01:00 committed by GitHub
parent 4b86c9c514
commit 282fc5c007
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 5 deletions

View file

@ -235,7 +235,8 @@ class ExceptionTests(unittest.TestCase):
""", 9, 20) """, 9, 20)
check("pass\npass\npass\n(1+)\npass\npass\npass", 4, 4) check("pass\npass\npass\n(1+)\npass\npass\npass", 4, 4)
check("(1+)", 1, 4) check("(1+)", 1, 4)
check(b"\xef\xbb\xbf#coding: utf8\nprint('\xe6\x88\x91')\n", 0, -1) check(b"\xef\xbb\xbf#coding: utf8\nprint('\xe6\x88\x91')\n", 0,
0 if support.use_old_parser() else -1)
# Errors thrown by symtable.c # Errors thrown by symtable.c
check('x = [(yield i) for i in range(3)]', 1, 5) check('x = [(yield i) for i in range(3)]', 1, 5)

View file

@ -211,6 +211,7 @@ f'{a * f"-{x()}-"}'"""
self.assertEqual(call.lineno, 3) self.assertEqual(call.lineno, 3)
self.assertEqual(call.col_offset, 11) self.assertEqual(call.col_offset, 11)
@unittest.skipIf(use_old_parser(), "The old parser gets the offsets incorrectly for fstrings")
def test_ast_line_numbers_duplicate_expression(self): def test_ast_line_numbers_duplicate_expression(self):
expr = """ expr = """
a = 10 a = 10
@ -277,6 +278,7 @@ f'{a * x()} {a * x()} {a * x()}'
self.assertEqual(binop.left.col_offset, 23) self.assertEqual(binop.left.col_offset, 23)
self.assertEqual(binop.right.col_offset, 27) self.assertEqual(binop.right.col_offset, 27)
@unittest.skipIf(use_old_parser(), "The old parser gets the offsets incorrectly for fstrings")
def test_ast_numbers_fstring_with_formatting(self): def test_ast_numbers_fstring_with_formatting(self):
t = ast.parse('f"Here is that pesky {xxx:.3f} again"') t = ast.parse('f"Here is that pesky {xxx:.3f} again"')

View file

@ -429,9 +429,6 @@ SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
>>> f((x)=2) >>> f((x)=2)
Traceback (most recent call last): Traceback (most recent call last):
SyntaxError: expression cannot contain assignment, perhaps you meant "=="? SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
>>> f(True=2)
Traceback (most recent call last):
SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
>>> f(__debug__=1) >>> f(__debug__=1)
Traceback (most recent call last): Traceback (most recent call last):
SyntaxError: cannot assign to __debug__ SyntaxError: cannot assign to __debug__
@ -981,7 +978,7 @@ def func2():
def test_invalid_line_continuation_error_position(self): def test_invalid_line_continuation_error_position(self):
self._check_error(r"a = 3 \ 4", self._check_error(r"a = 3 \ 4",
"unexpected character after line continuation character", "unexpected character after line continuation character",
lineno=1, offset=9) lineno=1, offset=(10 if support.use_old_parser() else 9))
def test_invalid_line_continuation_left_recursive(self): def test_invalid_line_continuation_left_recursive(self):
# Check bpo-42218: SyntaxErrors following left-recursive rules # Check bpo-42218: SyntaxErrors following left-recursive rules