mirror of
https://github.com/RustPython/RustPython.git
synced 2026-10-29 03:04:38 +08:00
Update test_string_literals.py from 3.14.3
This commit is contained in:
1 parent
0ffb1eeae7
commit
d43693d657
1 file changed
+42
-32
Vendored
+42
-32
@@ -105,7 +105,7 @@ class TestLiterals(unittest.TestCase):
|
||||
self.assertRaises(SyntaxError, eval, r""" '\U000000' """)
|
||||
self.assertRaises(SyntaxError, eval, r""" '\U0000000' """)
|
||||
|
||||
@unittest.expectedFailure # TODO: RUSTPYTHON
|
||||
@unittest.expectedFailure # TODO: RUSTPYTHON
|
||||
def test_eval_str_invalid_escape(self):
|
||||
for b in range(1, 128):
|
||||
if b in b"""\n\r"'01234567NU\\abfnrtuvx""":
|
||||
@@ -117,7 +117,9 @@ class TestLiterals(unittest.TestCase):
|
||||
warnings.simplefilter('always', category=SyntaxWarning)
|
||||
eval("'''\n\\z'''")
|
||||
self.assertEqual(len(w), 1)
|
||||
self.assertEqual(str(w[0].message), r"invalid escape sequence '\z'")
|
||||
self.assertEqual(str(w[0].message), r'"\z" is an invalid escape sequence. '
|
||||
r'Such sequences will not work in the future. '
|
||||
r'Did you mean "\\z"? A raw string is also an option.')
|
||||
self.assertEqual(w[0].filename, '<string>')
|
||||
self.assertEqual(w[0].lineno, 2)
|
||||
|
||||
@@ -127,7 +129,8 @@ class TestLiterals(unittest.TestCase):
|
||||
eval("'''\n\\z'''")
|
||||
exc = cm.exception
|
||||
self.assertEqual(w, [])
|
||||
self.assertEqual(exc.msg, r"invalid escape sequence '\z'")
|
||||
self.assertEqual(exc.msg, r'"\z" is an invalid escape sequence. '
|
||||
r'Did you mean "\\z"? A raw string is also an option.')
|
||||
self.assertEqual(exc.filename, '<string>')
|
||||
self.assertEqual(exc.lineno, 2)
|
||||
self.assertEqual(exc.offset, 1)
|
||||
@@ -144,7 +147,7 @@ class TestLiterals(unittest.TestCase):
|
||||
self.assertRegex(str(w[0].message), 'invalid escape sequence')
|
||||
self.assertEqual(w[0].filename, '<string>')
|
||||
|
||||
@unittest.expectedFailure # TODO: RUSTPYTHON
|
||||
@unittest.expectedFailure # TODO: RUSTPYTHON
|
||||
def test_eval_str_invalid_octal_escape(self):
|
||||
for i in range(0o400, 0o1000):
|
||||
with self.assertWarns(SyntaxWarning):
|
||||
@@ -155,7 +158,9 @@ class TestLiterals(unittest.TestCase):
|
||||
eval("'''\n\\407'''")
|
||||
self.assertEqual(len(w), 1)
|
||||
self.assertEqual(str(w[0].message),
|
||||
r"invalid octal escape sequence '\407'")
|
||||
r'"\407" is an invalid octal escape sequence. '
|
||||
r'Such sequences will not work in the future. '
|
||||
r'Did you mean "\\407"? A raw string is also an option.')
|
||||
self.assertEqual(w[0].filename, '<string>')
|
||||
self.assertEqual(w[0].lineno, 2)
|
||||
|
||||
@@ -165,34 +170,34 @@ class TestLiterals(unittest.TestCase):
|
||||
eval("'''\n\\407'''")
|
||||
exc = cm.exception
|
||||
self.assertEqual(w, [])
|
||||
self.assertEqual(exc.msg, r"invalid octal escape sequence '\407'")
|
||||
self.assertEqual(exc.msg, r'"\407" is an invalid octal escape sequence. '
|
||||
r'Did you mean "\\407"? A raw string is also an option.')
|
||||
self.assertEqual(exc.filename, '<string>')
|
||||
self.assertEqual(exc.lineno, 2)
|
||||
self.assertEqual(exc.offset, 1)
|
||||
|
||||
@unittest.expectedFailure # TODO: RUSTPYTHON
|
||||
def test_invalid_escape_locations_with_offset(self):
|
||||
with warnings.catch_warnings(record=True) as w:
|
||||
warnings.simplefilter('error', category=SyntaxWarning)
|
||||
with self.assertRaises(SyntaxError) as cm:
|
||||
eval("\"'''''''''''''''''''''invalid\\ Escape\"")
|
||||
exc = cm.exception
|
||||
self.assertEqual(w, [])
|
||||
self.assertEqual(exc.msg, r"invalid escape sequence '\ '")
|
||||
self.assertEqual(exc.filename, '<string>')
|
||||
self.assertEqual(exc.lineno, 1)
|
||||
self.assertEqual(exc.offset, 30)
|
||||
warnings.simplefilter('always', category=SyntaxWarning)
|
||||
eval("\"'''''''''''''''''''''invalid\\ Escape\"")
|
||||
self.assertEqual(len(w), 1)
|
||||
self.assertEqual(str(w[0].message),
|
||||
r'"\ " is an invalid escape sequence. Such sequences '
|
||||
r'will not work in the future. Did you mean "\\ "? '
|
||||
r'A raw string is also an option.')
|
||||
self.assertEqual(w[0].filename, '<string>')
|
||||
self.assertEqual(w[0].lineno, 1)
|
||||
|
||||
with warnings.catch_warnings(record=True) as w:
|
||||
warnings.simplefilter('error', category=SyntaxWarning)
|
||||
with self.assertRaises(SyntaxError) as cm:
|
||||
eval("\"''Incorrect \\ logic?\"")
|
||||
exc = cm.exception
|
||||
self.assertEqual(w, [])
|
||||
self.assertEqual(exc.msg, r"invalid escape sequence '\ '")
|
||||
self.assertEqual(exc.filename, '<string>')
|
||||
self.assertEqual(exc.lineno, 1)
|
||||
self.assertEqual(exc.offset, 14)
|
||||
warnings.simplefilter('always', category=SyntaxWarning)
|
||||
eval("\"''Incorrect \\ logic?\"")
|
||||
self.assertEqual(len(w), 1)
|
||||
self.assertEqual(str(w[0].message),
|
||||
r'"\ " is an invalid escape sequence. Such sequences '
|
||||
r'will not work in the future. Did you mean "\\ "? '
|
||||
r'A raw string is also an option.')
|
||||
self.assertEqual(w[0].filename, '<string>')
|
||||
self.assertEqual(w[0].lineno, 1)
|
||||
|
||||
def test_eval_str_raw(self):
|
||||
self.assertEqual(eval(""" r'x' """), 'x')
|
||||
@@ -220,7 +225,7 @@ class TestLiterals(unittest.TestCase):
|
||||
self.assertRaises(SyntaxError, eval, r""" b'\x' """)
|
||||
self.assertRaises(SyntaxError, eval, r""" b'\x0' """)
|
||||
|
||||
@unittest.expectedFailure # TODO: RUSTPYTHON
|
||||
@unittest.expectedFailure # TODO: RUSTPYTHON
|
||||
def test_eval_bytes_invalid_escape(self):
|
||||
for b in range(1, 128):
|
||||
if b in b"""\n\r"'01234567\\abfnrtvx""":
|
||||
@@ -232,7 +237,9 @@ class TestLiterals(unittest.TestCase):
|
||||
warnings.simplefilter('always', category=SyntaxWarning)
|
||||
eval("b'''\n\\z'''")
|
||||
self.assertEqual(len(w), 1)
|
||||
self.assertEqual(str(w[0].message), r"invalid escape sequence '\z'")
|
||||
self.assertEqual(str(w[0].message), r'"\z" is an invalid escape sequence. '
|
||||
r'Such sequences will not work in the future. '
|
||||
r'Did you mean "\\z"? A raw string is also an option.')
|
||||
self.assertEqual(w[0].filename, '<string>')
|
||||
self.assertEqual(w[0].lineno, 2)
|
||||
|
||||
@@ -242,11 +249,12 @@ class TestLiterals(unittest.TestCase):
|
||||
eval("b'''\n\\z'''")
|
||||
exc = cm.exception
|
||||
self.assertEqual(w, [])
|
||||
self.assertEqual(exc.msg, r"invalid escape sequence '\z'")
|
||||
self.assertEqual(exc.msg, r'"\z" is an invalid escape sequence. '
|
||||
r'Did you mean "\\z"? A raw string is also an option.')
|
||||
self.assertEqual(exc.filename, '<string>')
|
||||
self.assertEqual(exc.lineno, 2)
|
||||
|
||||
@unittest.expectedFailure # TODO: RUSTPYTHON
|
||||
@unittest.expectedFailure # TODO: RUSTPYTHON
|
||||
def test_eval_bytes_invalid_octal_escape(self):
|
||||
for i in range(0o400, 0o1000):
|
||||
with self.assertWarns(SyntaxWarning):
|
||||
@@ -256,8 +264,9 @@ class TestLiterals(unittest.TestCase):
|
||||
warnings.simplefilter('always', category=SyntaxWarning)
|
||||
eval("b'''\n\\407'''")
|
||||
self.assertEqual(len(w), 1)
|
||||
self.assertEqual(str(w[0].message),
|
||||
r"invalid octal escape sequence '\407'")
|
||||
self.assertEqual(str(w[0].message), r'"\407" is an invalid octal escape sequence. '
|
||||
r'Such sequences will not work in the future. '
|
||||
r'Did you mean "\\407"? A raw string is also an option.')
|
||||
self.assertEqual(w[0].filename, '<string>')
|
||||
self.assertEqual(w[0].lineno, 2)
|
||||
|
||||
@@ -267,7 +276,8 @@ class TestLiterals(unittest.TestCase):
|
||||
eval("b'''\n\\407'''")
|
||||
exc = cm.exception
|
||||
self.assertEqual(w, [])
|
||||
self.assertEqual(exc.msg, r"invalid octal escape sequence '\407'")
|
||||
self.assertEqual(exc.msg, r'"\407" is an invalid octal escape sequence. '
|
||||
r'Did you mean "\\407"? A raw string is also an option.')
|
||||
self.assertEqual(exc.filename, '<string>')
|
||||
self.assertEqual(exc.lineno, 2)
|
||||
|
||||
|
||||
Reference in new issue
Block a user