(self)
| 402 | re.subn('a', 'b', 'aaaaa', 1, 0, 0) |
| 403 | |
| 404 | def test_re_split(self): |
| 405 | for string in ":a:b::c", S(":a:b::c"): |
| 406 | self.assertTypedEqual(re.split(":", string), |
| 407 | ['', 'a', 'b', '', 'c']) |
| 408 | self.assertTypedEqual(re.split(":+", string), |
| 409 | ['', 'a', 'b', 'c']) |
| 410 | self.assertTypedEqual(re.split("(:+)", string), |
| 411 | ['', ':', 'a', ':', 'b', '::', 'c']) |
| 412 | for string in (b":a:b::c", B(b":a:b::c"), bytearray(b":a:b::c"), |
| 413 | memoryview(b":a:b::c")): |
| 414 | self.assertTypedEqual(re.split(b":", string), |
| 415 | [b'', b'a', b'b', b'', b'c']) |
| 416 | self.assertTypedEqual(re.split(b":+", string), |
| 417 | [b'', b'a', b'b', b'c']) |
| 418 | self.assertTypedEqual(re.split(b"(:+)", string), |
| 419 | [b'', b':', b'a', b':', b'b', b'::', b'c']) |
| 420 | for a, b, c in ("\xe0\xdf\xe7", "\u0430\u0431\u0432", |
| 421 | "\U0001d49c\U0001d49e\U0001d4b5"): |
| 422 | string = ":%s:%s::%s" % (a, b, c) |
| 423 | self.assertEqual(re.split(":", string), ['', a, b, '', c]) |
| 424 | self.assertEqual(re.split(":+", string), ['', a, b, c]) |
| 425 | self.assertEqual(re.split("(:+)", string), |
| 426 | ['', ':', a, ':', b, '::', c]) |
| 427 | |
| 428 | self.assertEqual(re.split("(?::+)", ":a:b::c"), ['', 'a', 'b', 'c']) |
| 429 | self.assertEqual(re.split("(:)+", ":a:b::c"), |
| 430 | ['', ':', 'a', ':', 'b', ':', 'c']) |
| 431 | self.assertEqual(re.split("([b:]+)", ":a:b::c"), |
| 432 | ['', ':', 'a', ':b::', 'c']) |
| 433 | self.assertEqual(re.split("(b)|(:+)", ":a:b::c"), |
| 434 | ['', None, ':', 'a', None, ':', '', 'b', None, '', |
| 435 | None, '::', 'c']) |
| 436 | self.assertEqual(re.split("(?:b)|(?::+)", ":a:b::c"), |
| 437 | ['', 'a', '', '', 'c']) |
| 438 | |
| 439 | for sep, expected in [ |
| 440 | (':*', ['', '', 'a', '', 'b', '', 'c', '']), |
| 441 | ('(?::*)', ['', '', 'a', '', 'b', '', 'c', '']), |
| 442 | ('(:*)', ['', ':', '', '', 'a', ':', '', '', 'b', '::', '', '', 'c', '', '']), |
| 443 | ('(:)*', ['', ':', '', None, 'a', ':', '', None, 'b', ':', '', None, 'c', None, '']), |
| 444 | ]: |
| 445 | with self.subTest(sep=sep): |
| 446 | self.assertTypedEqual(re.split(sep, ':a:b::c'), expected) |
| 447 | |
| 448 | for sep, expected in [ |
| 449 | ('', ['', ':', 'a', ':', 'b', ':', ':', 'c', '']), |
| 450 | (r'\b', [':', 'a', ':', 'b', '::', 'c', '']), |
| 451 | (r'(?=:)', ['', ':a', ':b', ':', ':c']), |
| 452 | (r'(?<=:)', [':', 'a:', 'b:', ':', 'c']), |
| 453 | ]: |
| 454 | with self.subTest(sep=sep): |
| 455 | self.assertTypedEqual(re.split(sep, ':a:b::c'), expected) |
| 456 | |
| 457 | def test_qualified_re_split(self): |
| 458 | with self.assertWarns(DeprecationWarning) as w: |
nothing calls this directly
no test coverage detected