(self)
| 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') |
nothing calls this directly
no test coverage detected