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 2
2
from test import audiotests
3
3
from test import support
4
4
import io
5
+ import os
5
6
import struct
6
7
import sys
7
8
import wave
@@ -222,6 +223,14 @@ def test_read_wrong_sample_width(self):
222
223
with self .assertRaisesRegex (wave .Error , 'bad sample width' ):
223
224
wave .open (io .BytesIO (b ))
224
225
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
+
225
234
226
235
if __name__ == '__main__' :
227
236
unittest .main ()
Original file line number Diff line number Diff line change @@ -441,6 +441,8 @@ class Wave_write:
441
441
_datawritten -- the size of the audio samples actually written
442
442
"""
443
443
444
+ _file = None
445
+
444
446
def __init__ (self , f ):
445
447
self ._i_opened_the_file = None
446
448
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