[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')

`