(self)
| 404 | self.assertRaises(ValueError, ('\u0102' * 100).rindex, '\U00100304\u0102') |
| 405 | |
| 406 | def test_maketrans_translate(self): |
| 407 | # these work with plain translate() |
| 408 | self.checkequalnofix('bbbc', 'abababc', 'translate', |
| 409 | {ord('a'): None}) |
| 410 | self.checkequalnofix('iiic', 'abababc', 'translate', |
| 411 | {ord('a'): None, ord('b'): ord('i')}) |
| 412 | self.checkequalnofix('iiix', 'abababc', 'translate', |
| 413 | {ord('a'): None, ord('b'): ord('i'), ord('c'): 'x'}) |
| 414 | self.checkequalnofix('c', 'abababc', 'translate', |
| 415 | {ord('a'): None, ord('b'): ''}) |
| 416 | self.checkequalnofix('xyyx', 'xzx', 'translate', |
| 417 | {ord('z'): 'yy'}) |
| 418 | |
| 419 | # this needs maketrans() |
| 420 | self.checkequalnofix('abababc', 'abababc', 'translate', |
| 421 | {'b': '<i>'}) |
| 422 | tbl = self.type2test.maketrans({'a': None, 'b': '<i>'}) |
| 423 | self.checkequalnofix('<i><i><i>c', 'abababc', 'translate', tbl) |
| 424 | # test alternative way of calling maketrans() |
| 425 | tbl = self.type2test.maketrans('abc', 'xyz', 'd') |
| 426 | self.checkequalnofix('xyzzy', 'abdcdcbdddd', 'translate', tbl) |
| 427 | |
| 428 | # various tests switching from ASCII to latin1 or the opposite; |
| 429 | # same length, remove a letter, or replace with a longer string. |
| 430 | self.assertEqual("[a]".translate(str.maketrans('a', 'X')), |
| 431 | "[X]") |
| 432 | self.assertEqual("[a]".translate(str.maketrans({'a': 'X'})), |
| 433 | "[X]") |
| 434 | self.assertEqual("[a]".translate(str.maketrans({'a': None})), |
| 435 | "[]") |
| 436 | self.assertEqual("[a]".translate(str.maketrans({'a': 'XXX'})), |
| 437 | "[XXX]") |
| 438 | self.assertEqual("[a]".translate(str.maketrans({'a': '\xe9'})), |
| 439 | "[\xe9]") |
| 440 | self.assertEqual('axb'.translate(str.maketrans({'a': None, 'b': '123'})), |
| 441 | "x123") |
| 442 | self.assertEqual('axb'.translate(str.maketrans({'a': None, 'b': '\xe9'})), |
| 443 | "x\xe9") |
| 444 | |
| 445 | # test non-ASCII (don't take the fast-path) |
| 446 | self.assertEqual("[a]".translate(str.maketrans({'a': '<\xe9>'})), |
| 447 | "[<\xe9>]") |
| 448 | self.assertEqual("[\xe9]".translate(str.maketrans({'\xe9': 'a'})), |
| 449 | "[a]") |
| 450 | self.assertEqual("[\xe9]".translate(str.maketrans({'\xe9': None})), |
| 451 | "[]") |
| 452 | self.assertEqual("[\xe9]".translate(str.maketrans({'\xe9': '123'})), |
| 453 | "[123]") |
| 454 | self.assertEqual("[a\xe9]".translate(str.maketrans({'a': '<\u20ac>'})), |
| 455 | "[<\u20ac>\xe9]") |
| 456 | |
| 457 | # with frozendict |
| 458 | tbl = self.type2test.maketrans(frozendict({'s': 'S', 'T': 't'})) |
| 459 | self.assertEqual(tbl, {ord('s'): 'S', ord('T'): 't'}) |
| 460 | self.assertEqual('sTan'.translate(tbl), 'Stan') |
| 461 | tbl = self.type2test.maketrans(frozendict({'a': None, 'b': '<i>'})) |
| 462 | self.checkequalnofix('<i><i><i>c', 'abababc', 'translate', tbl) |
| 463 |
nothing calls this directly
no test coverage detected