Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 9935274

Browse files
committed
Merged revisions 72425-72426 via svnmerge from
svn+ssh://[email protected]/python/trunk ........ r72425 | r.david.murray | 2009-05-07 12:27:02 -0400 (Thu, 07 May 2009) | 3 lines Issue5955: aifc's close method did not close the file it wrapped, now it does. This also means getfp method now returns the real fp. ........ r72426 | r.david.murray | 2009-05-07 12:29:19 -0400 (Thu, 07 May 2009) | 3 lines News item for Issue5955. ........
1 parent 865e01a commit 9935274

3 files changed

Lines changed: 22 additions & 3 deletions

File tree

Lib/aifc.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -281,10 +281,11 @@ def initfp(self, file):
281281
self._convert = None
282282
self._markers = []
283283
self._soundpos = 0
284-
self._file = Chunk(file)
285-
if self._file.getname() != b'FORM':
284+
self._file = file
285+
chunk = Chunk(file)
286+
if chunk.getname() != b'FORM':
286287
raise Error('file does not start with FORM id')
287-
formdata = self._file.read(4)
288+
formdata = chunk.read(4)
288289
if formdata == b'AIFF':
289290
self._aifc = 0
290291
elif formdata == b'AIFC':

Lib/test/test_aifc.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,21 @@ def test_compress(self):
9494
# XXX: this test fails, not sure if it should succeed or not
9595
# self.assertEqual(f.readframes(5), fout.readframes(5))
9696

97+
def test_close(self):
98+
class Wrapfile(object):
99+
def __init__(self, file):
100+
self.file = open(file, 'rb')
101+
self.closed = False
102+
def close(self):
103+
self.file.close()
104+
self.closed = True
105+
def __getattr__(self, attr): return getattr(self.file, attr)
106+
testfile = Wrapfile(self.sndfilepath)
107+
f = self.f = aifc.open(testfile)
108+
self.assertEqual(testfile.closed, False)
109+
f.close()
110+
self.assertEqual(testfile.closed, True)
111+
97112

98113
def test_main():
99114
run_unittest(AIFCTest)

Misc/NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ Core and Builtins
1515
Library
1616
-------
1717

18+
- Issue 5955: aifc's close method did not close the file it wrapped,
19+
now it does. This also means getfp method now returns the real fp.
20+
1821

1922
What's New in Python 3.1 beta 1?
2023
================================

0 commit comments

Comments
 (0)