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
@@ -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