@@ -348,8 +348,63 @@ def testSeekPreStartMultiStream(self):
348348 def testFileno (self ):
349349 self .createTempFile ()
350350 with open (self .filename , 'rb' ) as rawf :
351- with BZ2File (fileobj = rawf ) as bz2f :
351+ bz2f = BZ2File (fileobj = rawf )
352+ try :
352353 self .assertEqual (bz2f .fileno (), rawf .fileno ())
354+ finally :
355+ bz2f .close ()
356+ self .assertRaises (ValueError , bz2f .fileno )
357+
358+ def testSeekable (self ):
359+ bz2f = BZ2File (fileobj = BytesIO (self .DATA ))
360+ try :
361+ self .assertTrue (bz2f .seekable ())
362+ bz2f .read ()
363+ self .assertTrue (bz2f .seekable ())
364+ finally :
365+ bz2f .close ()
366+ self .assertRaises (ValueError , bz2f .seekable )
367+
368+ bz2f = BZ2File (fileobj = BytesIO (), mode = "w" )
369+ try :
370+ self .assertFalse (bz2f .seekable ())
371+ finally :
372+ bz2f .close ()
373+ self .assertRaises (ValueError , bz2f .seekable )
374+
375+ def testReadable (self ):
376+ bz2f = BZ2File (fileobj = BytesIO (self .DATA ))
377+ try :
378+ self .assertTrue (bz2f .readable ())
379+ bz2f .read ()
380+ self .assertTrue (bz2f .readable ())
381+ finally :
382+ bz2f .close ()
383+ self .assertRaises (ValueError , bz2f .readable )
384+
385+ bz2f = BZ2File (fileobj = BytesIO (), mode = "w" )
386+ try :
387+ self .assertFalse (bz2f .readable ())
388+ finally :
389+ bz2f .close ()
390+ self .assertRaises (ValueError , bz2f .readable )
391+
392+ def testWritable (self ):
393+ bz2f = BZ2File (fileobj = BytesIO (self .DATA ))
394+ try :
395+ self .assertFalse (bz2f .writable ())
396+ bz2f .read ()
397+ self .assertFalse (bz2f .writable ())
398+ finally :
399+ bz2f .close ()
400+ self .assertRaises (ValueError , bz2f .writable )
401+
402+ bz2f = BZ2File (fileobj = BytesIO (), mode = "w" )
403+ try :
404+ self .assertTrue (bz2f .writable ())
405+ finally :
406+ bz2f .close ()
407+ self .assertRaises (ValueError , bz2f .writable )
353408
354409 def testOpenDel (self ):
355410 self .createTempFile ()
0 commit comments