[3.8] bpo-32912: Revert SyntaxWarning on invalid escape sequences (GH… · python/cpython@4c5b6ba (original) (raw)
`@@ -32,6 +32,7 @@
`
32
32
`import shutil
`
33
33
`import tempfile
`
34
34
`import unittest
`
``
35
`+
import warnings
`
35
36
``
36
37
``
37
38
`TEMPLATE = r"""# coding: %s
`
`@@ -110,10 +111,24 @@ def test_eval_str_invalid_escape(self):
`
110
111
`for b in range(1, 128):
`
111
112
`if b in b"""\n\r"'01234567NU\abfnrtuvx""":
`
112
113
`continue
`
113
``
`-
with self.assertWarns(SyntaxWarning):
`
``
114
`+
with self.assertWarns(DeprecationWarning):
`
114
115
`self.assertEqual(eval(r"'%c'" % b), '\' + chr(b))
`
115
116
``
116
``
`-
self.check_syntax_warning("'''\n\z'''")
`
``
117
`+
with warnings.catch_warnings(record=True) as w:
`
``
118
`+
warnings.simplefilter('always', category=DeprecationWarning)
`
``
119
`+
eval("'''\n\z'''")
`
``
120
`+
self.assertEqual(len(w), 1)
`
``
121
`+
self.assertEqual(w[0].filename, '')
`
``
122
`+
self.assertEqual(w[0].lineno, 1)
`
``
123
+
``
124
`+
with warnings.catch_warnings(record=True) as w:
`
``
125
`+
warnings.simplefilter('error', category=DeprecationWarning)
`
``
126
`+
with self.assertRaises(SyntaxError) as cm:
`
``
127
`+
eval("'''\n\z'''")
`
``
128
`+
exc = cm.exception
`
``
129
`+
self.assertEqual(w, [])
`
``
130
`+
self.assertEqual(exc.filename, '')
`
``
131
`+
self.assertEqual(exc.lineno, 1)
`
117
132
``
118
133
`def test_eval_str_raw(self):
`
119
134
`self.assertEqual(eval(""" r'x' """), 'x')
`
`@@ -145,10 +160,24 @@ def test_eval_bytes_invalid_escape(self):
`
145
160
`for b in range(1, 128):
`
146
161
`if b in b"""\n\r"'01234567\abfnrtvx""":
`
147
162
`continue
`
148
``
`-
with self.assertWarns(SyntaxWarning):
`
``
163
`+
with self.assertWarns(DeprecationWarning):
`
149
164
`self.assertEqual(eval(r"b'%c'" % b), b'\' + bytes([b]))
`
150
165
``
151
``
`-
self.check_syntax_warning("b'''\n\z'''")
`
``
166
`+
with warnings.catch_warnings(record=True) as w:
`
``
167
`+
warnings.simplefilter('always', category=DeprecationWarning)
`
``
168
`+
eval("b'''\n\z'''")
`
``
169
`+
self.assertEqual(len(w), 1)
`
``
170
`+
self.assertEqual(w[0].filename, '')
`
``
171
`+
self.assertEqual(w[0].lineno, 1)
`
``
172
+
``
173
`+
with warnings.catch_warnings(record=True) as w:
`
``
174
`+
warnings.simplefilter('error', category=DeprecationWarning)
`
``
175
`+
with self.assertRaises(SyntaxError) as cm:
`
``
176
`+
eval("b'''\n\z'''")
`
``
177
`+
exc = cm.exception
`
``
178
`+
self.assertEqual(w, [])
`
``
179
`+
self.assertEqual(exc.filename, '')
`
``
180
`+
self.assertEqual(exc.lineno, 1)
`
152
181
``
153
182
`def test_eval_bytes_raw(self):
`
154
183
`self.assertEqual(eval(""" br'x' """), b'x')
`