bpo-34013: Don't consider a grouped expression when reporting legacy print syntax errors (GH-27521)
(cherry picked from commit 208a7e957b812ad3b3733791845447677a704f3e)
Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
diff --git a/Lib/test/test_exceptions.py b/Lib/test/test_exceptions.py
index 8ffebeb..339801e 100644
--- a/Lib/test/test_exceptions.py
+++ b/Lib/test/test_exceptions.py
@@ -182,6 +182,15 @@ def ckmsg(src, msg, exception=SyntaxError):
s = 'exec f(a+b,c)'
ckmsg(s, "Missing parentheses in call to 'exec'. Did you mean exec(...)?")
+ # Check that we don't incorrectly identify '(...)' as an expression to the right
+ # of 'print'
+
+ s = 'print (a+b,c) $ 42'
+ ckmsg(s, "invalid syntax")
+
+ s = 'exec (a+b,c) $ 42'
+ ckmsg(s, "invalid syntax")
+
# should not apply to subclasses, see issue #31161
s = '''if True:\nprint "No indent"'''
ckmsg(s, "expected an indented block after 'if' statement on line 1", IndentationError)