@@ -855,29 +855,29 @@ def setUp(self):
855855self .fake_open = InvocationRecorder ()
856856
857857def test_empty_string (self ):
858- self .do_test_use_builtin_open ("" ,1 )
858+ self .do_test_use_builtin_open_text ("" ,"r" )
859859
860860def test_no_ext (self ):
861- self .do_test_use_builtin_open ("abcd" ,2 )
861+ self .do_test_use_builtin_open_text ("abcd" ,"r" )
862862
863863@unittest .skipUnless (gzip ,"Requires gzip and zlib" )
864864def test_gz_ext_fake (self ):
865865original_open = gzip .open
866866gzip .open = self .fake_open
867867try :
868- result = fileinput .hook_compressed ("test.gz" ,"3 " )
868+ result = fileinput .hook_compressed ("test.gz" ,"r " )
869869finally :
870870gzip .open = original_open
871871
872872self .assertEqual (self .fake_open .invocation_count ,1 )
873- self .assertEqual (self .fake_open .last_invocation , (("test.gz" ,"3 " ), {}))
873+ self .assertEqual (self .fake_open .last_invocation , (("test.gz" ,"r " ), {}))
874874
875875@unittest .skipUnless (gzip ,"Requires gzip and zlib" )
876876def test_gz_with_encoding_fake (self ):
877877original_open = gzip .open
878878gzip .open = lambda filename ,mode :io .BytesIO (b'Ex-binary string' )
879879try :
880- result = fileinput .hook_compressed ("test.gz" ,"3 " ,encoding = "utf-8" )
880+ result = fileinput .hook_compressed ("test.gz" ,"r " ,encoding = "utf-8" )
881881finally :
882882gzip .open = original_open
883883self .assertEqual (list (result ), ['Ex-binary string' ])
@@ -887,23 +887,40 @@ def test_bz2_ext_fake(self):
887887original_open = bz2 .BZ2File
888888bz2 .BZ2File = self .fake_open
889889try :
890- result = fileinput .hook_compressed ("test.bz2" ,"4 " )
890+ result = fileinput .hook_compressed ("test.bz2" ,"r " )
891891finally :
892892bz2 .BZ2File = original_open
893893
894894self .assertEqual (self .fake_open .invocation_count ,1 )
895- self .assertEqual (self .fake_open .last_invocation , (("test.bz2" ,"4 " ), {}))
895+ self .assertEqual (self .fake_open .last_invocation , (("test.bz2" ,"r " ), {}))
896896
897897def test_blah_ext (self ):
898- self .do_test_use_builtin_open ("abcd.blah" ,"5 " )
898+ self .do_test_use_builtin_open_binary ("abcd.blah" ,"rb " )
899899
900900def test_gz_ext_builtin (self ):
901- self .do_test_use_builtin_open ("abcd.Gz" ,"6 " )
901+ self .do_test_use_builtin_open_binary ("abcd.Gz" ,"rb " )
902902
903903def test_bz2_ext_builtin (self ):
904- self .do_test_use_builtin_open ("abcd.Bz2" ,"7 " )
904+ self .do_test_use_builtin_open_binary ("abcd.Bz2" ,"rb " )
905905
906- def do_test_use_builtin_open (self ,filename ,mode ):
906+ def test_binary_mode_encoding (self ):
907+ self .do_test_use_builtin_open_binary ("abcd" ,"rb" )
908+
909+ def test_text_mode_encoding (self ):
910+ self .do_test_use_builtin_open_text ("abcd" ,"r" )
911+
912+ def do_test_use_builtin_open_binary (self ,filename ,mode ):
913+ original_open = self .replace_builtin_open (self .fake_open )
914+ try :
915+ result = fileinput .hook_compressed (filename ,mode )
916+ finally :
917+ self .replace_builtin_open (original_open )
918+
919+ self .assertEqual (self .fake_open .invocation_count ,1 )
920+ self .assertEqual (self .fake_open .last_invocation ,
921+ ((filename ,mode ), {'encoding' :None ,'errors' :None }))
922+
923+ def do_test_use_builtin_open_text (self ,filename ,mode ):
907924original_open = self .replace_builtin_open (self .fake_open )
908925try :
909926result = fileinput .hook_compressed (filename ,mode )