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