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
@@ -196,6 +197,14 @@ def test_read_wrong_sample_width(self):
196
197
with self .assertRaisesRegex (wave .Error , 'bad sample width' ):
197
198
wave .open (io .BytesIO (b ))
198
199
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
+
199
208
200
209
if __name__ == '__main__' :
201
210
unittest .main ()
Original file line number Diff line number Diff line change @@ -427,6 +427,8 @@ class Wave_write:
427
427
_datawritten -- the size of the audio samples actually written
428
428
"""
429
429
430
+ _file = None
431
+
430
432
def __init__ (self , f ):
431
433
self ._i_opened_the_file = None
432
434
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