@@ -689,6 +689,37 @@ def test_free_after_iterating(self):
689689 test .support .check_free_after_iterating (self , iter , self .type2test )
690690 test .support .check_free_after_iterating (self , reversed , self .type2test )
691691
692+ def test_translate (self ):
693+ b = self .type2test (b'hello' )
694+ rosetta = bytearray (range (256 ))
695+ rosetta [ord ('o' )] = ord ('e' )
696+
697+ self .assertRaises (TypeError , b .translate )
698+ self .assertRaises (TypeError , b .translate , None , None )
699+ self .assertRaises (ValueError , b .translate , bytes (range (255 )))
700+
701+ c = b .translate (rosetta , b'hello' )
702+ self .assertEqual (b , b'hello' )
703+ self .assertIsInstance (c , self .type2test )
704+
705+ c = b .translate (rosetta )
706+ d = b .translate (rosetta , b'' )
707+ self .assertEqual (c , d )
708+ self .assertEqual (c , b'helle' )
709+
710+ c = b .translate (rosetta , b'l' )
711+ self .assertEqual (c , b'hee' )
712+ c = b .translate (None , b'e' )
713+ self .assertEqual (c , b'hllo' )
714+
715+ # test delete as a keyword argument
716+ c = b .translate (rosetta , delete = b'' )
717+ self .assertEqual (c , b'helle' )
718+ c = b .translate (rosetta , delete = b'l' )
719+ self .assertEqual (c , b'hee' )
720+ c = b .translate (None , delete = b'e' )
721+ self .assertEqual (c , b'hllo' )
722+
692723
693724class BytesTest (BaseBytesTest , unittest .TestCase ):
694725 type2test = bytes
@@ -1449,24 +1480,6 @@ def test_literal(self):
14491480 self .assertRaises (SyntaxError , eval ,
14501481 'b"%s"' % chr (c ))
14511482
1452- def test_translate (self ):
1453- b = b'hello'
1454- ba = bytearray (b )
1455- rosetta = bytearray (range (0 , 256 ))
1456- rosetta [ord ('o' )] = ord ('e' )
1457- c = b .translate (rosetta , b'l' )
1458- self .assertEqual (b , b'hello' )
1459- self .assertEqual (c , b'hee' )
1460- c = ba .translate (rosetta , b'l' )
1461- self .assertEqual (ba , b'hello' )
1462- self .assertEqual (c , b'hee' )
1463- c = b .translate (None , b'e' )
1464- self .assertEqual (c , b'hllo' )
1465- c = ba .translate (None , b'e' )
1466- self .assertEqual (c , b'hllo' )
1467- self .assertRaises (TypeError , b .translate , None , None )
1468- self .assertRaises (TypeError , ba .translate , None , None )
1469-
14701483 def test_split_bytearray (self ):
14711484 self .assertEqual (b'a b' .split (memoryview (b' ' )), [b'a' , b'b' ])
14721485
0 commit comments