1- from test .support import TESTFN , run_unittest
2- import os
1+ from test .support import TESTFN , unlink
32import wave
4- import struct
53import unittest
64
75nchannels = 2
@@ -17,10 +15,7 @@ def setUp(self):
1715 def tearDown (self ):
1816 if self .f is not None :
1917 self .f .close ()
20- try :
21- os .remove (TESTFN )
22- except OSError :
23- pass
18+ unlink (TESTFN )
2419
2520 def test_it (self , test_rounding = False ):
2621 self .f = wave .open (TESTFN , 'wb' )
@@ -74,9 +69,23 @@ def test_getparams(self):
7469 self .assertEqual (params .comptype , self .f .getcomptype ())
7570 self .assertEqual (params .compname , self .f .getcompname ())
7671
72+ def test_context_manager (self ):
73+ self .f = wave .open (TESTFN , 'wb' )
74+ self .f .setnchannels (nchannels )
75+ self .f .setsampwidth (sampwidth )
76+ self .f .setframerate (framerate )
77+ self .f .close ()
78+
79+ with wave .open (TESTFN ) as f :
80+ self .assertFalse (f .getfp ().closed )
81+ self .assertIs (f .getfp (), None )
82+
83+ with open (TESTFN , 'wb' ) as testfile :
84+ with self .assertRaises (wave .Error ):
85+ with wave .open (testfile , 'wb' ):
86+ pass
87+ self .assertEqual (testfile .closed , False )
7788
78- def test_main ():
79- run_unittest (TestWave )
8089
8190if __name__ == '__main__' :
82- test_main ()
91+ unittest . main ()
0 commit comments