summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_aifc.py
diff options
context:
space:
mode:
authorAnthony Zhang <azhang9@gmail.com>2017-02-22 07:23:30 (GMT)
committerINADA Naoki <methane@users.noreply.github.com>2017-02-22 07:23:30 (GMT)
commit03f68b60e17b57f6f13729ff73245dbb37b30a4c (patch)
tree59dc7d31f6b135159861f2e8af6e511a58340b96 /Lib/test/test_aifc.py
parent0899b9809547ec2894dcf88cf4bba732c5d47d0d (diff)
downloadcpython-03f68b60e17b57f6f13729ff73245dbb37b30a4c.zip
cpython-03f68b60e17b57f6f13729ff73245dbb37b30a4c.tar.gz
cpython-03f68b60e17b57f6f13729ff73245dbb37b30a4c.tar.bz2
bpo-29110: Fix file object leak in `aifc.open` when given invalid AIFF file. (GH-162)
Diffstat (limited to 'Lib/test/test_aifc.py')
-rw-r--r--Lib/test/test_aifc.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/Lib/test/test_aifc.py b/Lib/test/test_aifc.py
index 1bd1f89..989df93 100644
--- a/Lib/test/test_aifc.py
+++ b/Lib/test/test_aifc.py
@@ -1,4 +1,4 @@
-from test.support import findfile, TESTFN, unlink
+from test.support import check_no_resource_warning, findfile, TESTFN, unlink
import unittest
from test import audiotests
from audioop import byteswap
@@ -149,6 +149,14 @@ class AifcMiscTest(audiotests.AudioTests, unittest.TestCase):
#This file contains chunk types aifc doesn't recognize.
self.f = aifc.open(findfile('Sine-1000Hz-300ms.aif'))
+ def test_close_opened_files_on_error(self):
+ non_aifc_file = findfile('pluck-pcm8.wav', subdir='audiodata')
+ with check_no_resource_warning(self):
+ with self.assertRaises(aifc.Error):
+ # Try opening a non-AIFC file, with the expectation that
+ # `aifc.open` will fail (without raising a ResourceWarning)
+ f = self.f = aifc.open(non_aifc_file, 'rb')
+
def test_params_added(self):
f = self.f = aifc.open(TESTFN, 'wb')
f.aiff()