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

Method test_maketrans_translate

Lib/test/test_str.py:406–481  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 6

checkequalnofixMethod · 0.95
frozendictClass · 0.85
maketransMethod · 0.80
assertEqualMethod · 0.45
translateMethod · 0.45
assertRaisesMethod · 0.45

Tested by

no test coverage detected