mirror of
https://github.com/python/cpython.git
synced 2025-11-17 17:46:45 +00:00
bpo-34013: Move the Python 2 hints from the exception constructor to the parser (GH-27392)
This commit is contained in:
parent
6948964ecf
commit
ecc3c8e421
5 changed files with 28 additions and 224 deletions
|
|
@ -168,21 +168,19 @@ class ExceptionTests(unittest.TestCase):
|
|||
self.fail("failed to get expected SyntaxError")
|
||||
|
||||
s = '''print "old style"'''
|
||||
ckmsg(s, "Missing parentheses in call to 'print'. "
|
||||
"Did you mean print(\"old style\")?")
|
||||
ckmsg(s, "Missing parentheses in call to 'print'. Did you mean print(...)?")
|
||||
|
||||
s = '''print "old style",'''
|
||||
ckmsg(s, "Missing parentheses in call to 'print'. "
|
||||
"Did you mean print(\"old style\", end=\" \")?")
|
||||
ckmsg(s, "Missing parentheses in call to 'print'. Did you mean print(...)?")
|
||||
|
||||
s = 'print f(a+b,c)'
|
||||
ckmsg(s, "Missing parentheses in call to 'print'.")
|
||||
ckmsg(s, "Missing parentheses in call to 'print'. Did you mean print(...)?")
|
||||
|
||||
s = '''exec "old style"'''
|
||||
ckmsg(s, "Missing parentheses in call to 'exec'")
|
||||
ckmsg(s, "Missing parentheses in call to 'exec'. Did you mean exec(...)?")
|
||||
|
||||
s = 'exec f(a+b,c)'
|
||||
ckmsg(s, "Missing parentheses in call to 'exec'.")
|
||||
ckmsg(s, "Missing parentheses in call to 'exec'. Did you mean exec(...)?")
|
||||
|
||||
# should not apply to subclasses, see issue #31161
|
||||
s = '''if True:\nprint "No indent"'''
|
||||
|
|
|
|||
|
|
@ -140,21 +140,24 @@ class TestPy2MigrationHint(unittest.TestCase):
|
|||
with self.assertRaises(SyntaxError) as context:
|
||||
exec(python2_print_str)
|
||||
|
||||
self.assertIn('print("Hello World")', str(context.exception))
|
||||
self.assertIn("Missing parentheses in call to 'print'. Did you mean print(...)",
|
||||
str(context.exception))
|
||||
|
||||
def test_string_with_soft_space(self):
|
||||
python2_print_str = 'print "Hello World",'
|
||||
with self.assertRaises(SyntaxError) as context:
|
||||
exec(python2_print_str)
|
||||
|
||||
self.assertIn('print("Hello World", end=" ")', str(context.exception))
|
||||
self.assertIn("Missing parentheses in call to 'print'. Did you mean print(...)",
|
||||
str(context.exception))
|
||||
|
||||
def test_string_with_excessive_whitespace(self):
|
||||
python2_print_str = 'print "Hello World", '
|
||||
with self.assertRaises(SyntaxError) as context:
|
||||
exec(python2_print_str)
|
||||
|
||||
self.assertIn('print("Hello World", end=" ")', str(context.exception))
|
||||
self.assertIn("Missing parentheses in call to 'print'. Did you mean print(...)",
|
||||
str(context.exception))
|
||||
|
||||
def test_string_with_leading_whitespace(self):
|
||||
python2_print_str = '''if 1:
|
||||
|
|
@ -163,7 +166,8 @@ class TestPy2MigrationHint(unittest.TestCase):
|
|||
with self.assertRaises(SyntaxError) as context:
|
||||
exec(python2_print_str)
|
||||
|
||||
self.assertIn('print("Hello World")', str(context.exception))
|
||||
self.assertIn("Missing parentheses in call to 'print'. Did you mean print(...)",
|
||||
str(context.exception))
|
||||
|
||||
# bpo-32685: Suggestions for print statement should be proper when
|
||||
# it is in the same line as the header of a compound statement
|
||||
|
|
@ -173,14 +177,16 @@ class TestPy2MigrationHint(unittest.TestCase):
|
|||
with self.assertRaises(SyntaxError) as context:
|
||||
exec(python2_print_str)
|
||||
|
||||
self.assertIn('print(p)', str(context.exception))
|
||||
self.assertIn("Missing parentheses in call to 'print'. Did you mean print(...)",
|
||||
str(context.exception))
|
||||
|
||||
def test_string_in_loop_on_same_line(self):
|
||||
python2_print_str = 'for i in s: print i'
|
||||
with self.assertRaises(SyntaxError) as context:
|
||||
exec(python2_print_str)
|
||||
|
||||
self.assertIn('print(i)', str(context.exception))
|
||||
self.assertIn("Missing parentheses in call to 'print'. Did you mean print(...)",
|
||||
str(context.exception))
|
||||
|
||||
def test_stream_redirection_hint_for_py2_migration(self):
|
||||
# Test correct hint produced for Py2 redirection syntax
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue