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

Method test_re_split

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

Source from the content-addressed store, hash-verified

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:

Callers

nothing calls this directly

Calls 6

assertTypedEqualMethod · 0.95
SClass · 0.70
BClass · 0.70
splitMethod · 0.45
assertEqualMethod · 0.45
subTestMethod · 0.45

Tested by

no test coverage detected