MCPcopy Index your code
hub / github.com/python/cpython / test_sub_template_numeric_escape

Method test_sub_template_numeric_escape

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

Source from the content-addressed store, hash-verified

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