File tree Expand file tree Collapse file tree 3 files changed +12
-0
lines changed Expand file tree Collapse file tree 3 files changed +12
-0
lines changed Original file line number Diff line number Diff line change 22from  test  import  audiotests 
33from  test  import  support 
44import  io 
5+ import  os 
56import  struct 
67import  sys 
78import  wave 
@@ -222,6 +223,14 @@ def test_read_wrong_sample_width(self):
222223        with  self .assertRaisesRegex (wave .Error , 'bad sample width' ):
223224            wave .open (io .BytesIO (b ))
224225
226+     def  test_open_in_write_raises (self ):
227+         # gh-136523: Wave_write.__del__ should not throw 
228+         with  support .catch_unraisable_exception () as  cm :
229+             with  self .assertRaises (OSError ):
230+                 wave .open (os .curdir , "wb" )
231+             support .gc_collect ()
232+             self .assertIsNone (cm .unraisable )
233+ 
225234
226235if  __name__  ==  '__main__' :
227236    unittest .main ()
Original file line number Diff line number Diff line change @@ -441,6 +441,8 @@ class Wave_write:
441441    _datawritten -- the size of the audio samples actually written 
442442    """ 
443443
444+     _file  =  None 
445+ 
444446    def  __init__ (self , f ):
445447        self ._i_opened_the_file  =  None 
446448        if  isinstance (f , str ):
Original file line number Diff line number Diff line change 1+ Fix :class: `wave.Wave_write ` emitting an unraisable when open raises.
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments