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