@@ -1249,6 +1249,9 @@ def test_newline_decoder(self):
12491249
12501250class MiscIOTest (unittest .TestCase ):
12511251
1252+ def tearDown (self ):
1253+ support .unlink (support .TESTFN )
1254+
12521255 def testImport__all__ (self ):
12531256 for name in io .__all__ :
12541257 obj = getattr (io , name , None )
@@ -1261,6 +1264,34 @@ def testImport__all__(self):
12611264 self .assert_ (issubclass (obj , io .IOBase ))
12621265
12631266
1267+ def test_attributes (self ):
1268+ f = io .open (support .TESTFN , "wb" , buffering = 0 )
1269+ self .assertEquals (f .mode , "w" )
1270+ f .close ()
1271+
1272+ f = io .open (support .TESTFN , "U" )
1273+ self .assertEquals (f .name , support .TESTFN )
1274+ self .assertEquals (f .buffer .name , support .TESTFN )
1275+ self .assertEquals (f .buffer .raw .name , support .TESTFN )
1276+ self .assertEquals (f .mode , "U" )
1277+ self .assertEquals (f .buffer .mode , "r" )
1278+ self .assertEquals (f .buffer .raw .mode , "r" )
1279+ f .close ()
1280+
1281+ f = io .open (support .TESTFN , "w+" )
1282+ self .assertEquals (f .mode , "w+" )
1283+ self .assertEquals (f .buffer .mode , "r+" ) # Does it really matter?
1284+ self .assertEquals (f .buffer .raw .mode , "r+" )
1285+
1286+ g = io .open (f .fileno (), "wb" , closefd = False )
1287+ self .assertEquals (g .mode , "w" )
1288+ self .assertEquals (g .raw .mode , "w" )
1289+ self .assertEquals (g .name , f .fileno ())
1290+ self .assertEquals (g .raw .name , f .fileno ())
1291+ f .close ()
1292+ g .close ()
1293+
1294+
12641295def test_main ():
12651296 support .run_unittest (IOTest , BytesIOTest , StringIOTest ,
12661297 BufferedReaderTest , BufferedWriterTest ,
0 commit comments