MCPcopy Create free account
hub / github.com/RustPython/RustPython / test_sub_template_numeric_escape

Method test_sub_template_numeric_escape

Lib/test/test_re.py:193–239  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

191 re.compile("(?P<quote>)(?(quote))")
192
193 def test_sub_template_numeric_escape(self):
194 # bug 776311 and friends
195 self.assertEqual(re.sub('x', r'\0', 'x'), '\0')
196 self.assertEqual(re.sub('x', r'\000', 'x'), '\000')
197 self.assertEqual(re.sub('x', r'\001', 'x'), '\001')
198 self.assertEqual(re.sub('x', r'\008', 'x'), '\0' + '8')
199 self.assertEqual(re.sub('x', r'\009', 'x'), '\0' + '9')
200 self.assertEqual(re.sub('x', r'\111', 'x'), '\111')
201 self.assertEqual(re.sub('x', r'\117', 'x'), '\117')
202 self.assertEqual(re.sub('x', r'\377', 'x'), '\377')
203
204 self.assertEqual(re.sub('x', r'\1111', 'x'), '\1111')
205 self.assertEqual(re.sub('x', r'\1111', 'x'), '\111' + '1')
206
207 self.assertEqual(re.sub('x', r'\00', 'x'), '\x00')
208 self.assertEqual(re.sub('x', r'\07', 'x'), '\x07')
209 self.assertEqual(re.sub('x', r'\08', 'x'), '\0' + '8')
210 self.assertEqual(re.sub('x', r'\09', 'x'), '\0' + '9')
211 self.assertEqual(re.sub('x', r'\0a', 'x'), '\0' + 'a')
212
213 self.checkTemplateError('x', r'\400', 'x',
214 r'octal escape value \400 outside of '
215 r'range 0-0o377', 0)
216 self.checkTemplateError('x', r'\777', 'x',
217 r'octal escape value \777 outside of '
218 r'range 0-0o377', 0)
219
220 self.checkTemplateError('x', r'\1', 'x', 'invalid group reference 1', 1)
221 self.checkTemplateError('x', r'\8', 'x', 'invalid group reference 8', 1)
222 self.checkTemplateError('x', r'\9', 'x', 'invalid group reference 9', 1)
223 self.checkTemplateError('x', r'\11', 'x', 'invalid group reference 11', 1)
224 self.checkTemplateError('x', r'\18', 'x', 'invalid group reference 18', 1)
225 self.checkTemplateError('x', r'\1a', 'x', 'invalid group reference 1', 1)
226 self.checkTemplateError('x', r'\90', 'x', 'invalid group reference 90', 1)
227 self.checkTemplateError('x', r'\99', 'x', 'invalid group reference 99', 1)
228 self.checkTemplateError('x', r'\118', 'x', 'invalid group reference 11', 1)
229 self.checkTemplateError('x', r'\11a', 'x', 'invalid group reference 11', 1)
230 self.checkTemplateError('x', r'\181', 'x', 'invalid group reference 18', 1)
231 self.checkTemplateError('x', r'\800', 'x', 'invalid group reference 80', 1)
232 self.checkTemplateError('x', r'\8', '', 'invalid group reference 8', 1)
233
234 # in python2.3 (etc), these loop endlessly in sre_parser.py
235 self.assertEqual(re.sub('(((((((((((x)))))))))))', r'\11', 'x'), 'x')
236 self.assertEqual(re.sub('((((((((((y))))))))))(.)', r'\118', 'xyz'),
237 'xz8')
238 self.assertEqual(re.sub('((((((((((y))))))))))(.)', r'\11a', 'xyz'),
239 'xza')
240
241 def test_qualified_re_sub(self):
242 self.assertEqual(re.sub('a', 'b', 'aaaaa'), 'bbbbb')

Callers

nothing calls this directly

Calls 3

checkTemplateErrorMethod · 0.95
assertEqualMethod · 0.45
subMethod · 0.45

Tested by

no test coverage detected