Visitar URL original
bpo-29110: add test for Aifc_write. by methane · Pull Request #293 · python/cpython · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Lib/aifc.py
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,8 @@ class Aifc_read:
# _ssnd_chunk -- instantiation of a chunk class for the SSND chunk
# _framesize -- size of one frame in the file

_file = None

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add a comment like in subprocess.py, tempfile.py, zipfile.py?


def initfp(self, file):
self._version = 0
self._convert = None
Expand Down Expand Up @@ -547,6 +549,8 @@ class Aifc_write:
# _datalength -- the size of the audio samples written to the header
# _datawritten -- the size of the audio samples actually written

_file = None

def __init__(self, f):
if isinstance(f, str):
file_object = builtins.open(f, 'wb')
Expand Down
10 changes: 9 additions & 1 deletion Lib/test/test_aifc.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from test.support import check_no_resource_warning, findfile, TESTFN, unlink
import unittest
from unittest import mock
from test import audiotests
from audioop import byteswap
import io
Expand Down Expand Up @@ -155,7 +156,14 @@ def test_close_opened_files_on_error(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')
self.f = aifc.open(non_aifc_file, 'rb')

# Aifc_write.initfp() won't raise in normal case. But some errors
# (e.g. MemoryError, KeyboardInterrupt, etc..) can happen.
with mock.patch.object(aifc.Aifc_write, 'initfp',
side_effect=RuntimeError):
with self.assertRaises(RuntimeError):
self.fout = aifc.open(TESTFN, 'wb')

def test_params_added(self):
f = self.f = aifc.open(TESTFN, 'wb')
Expand Down