File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree 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
@@ -196,6 +197,14 @@ def test_read_wrong_sample_width(self):
196197 with self .assertRaisesRegex (wave .Error , 'bad sample width' ):
197198 wave .open (io .BytesIO (b ))
198199
200+ def test_open_in_write_raises (self ):
201+ # gh-136523: Wave_write.__del__ should not throw
202+ with support .catch_unraisable_exception () as cm :
203+ with self .assertRaises (OSError ):
204+ wave .open (os .curdir , "wb" )
205+ support .gc_collect ()
206+ self .assertIsNone (cm .unraisable )
207+
199208
200209if __name__ == '__main__' :
201210 unittest .main ()
Original file line number Diff line number Diff line change @@ -427,6 +427,8 @@ class Wave_write:
427427 _datawritten -- the size of the audio samples actually written
428428 """
429429
430+ _file = None
431+
430432 def __init__ (self , f ):
431433 self ._i_opened_the_file = None
432434 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