mirror of
https://github.com/python/cpython.git
synced 2024-12-04 07:15:09 +08:00
25c95f1298
svn+ssh://pythondev@svn.python.org/python/trunk ........ r70768 | andrew.kuchling | 2009-03-30 17:29:15 -0500 (Mon, 30 Mar 2009) | 1 line Typo fixes ........ r71657 | vinay.sajip | 2009-04-16 14:07:37 -0500 (Thu, 16 Apr 2009) | 1 line Issue #5768: Change to Unicode output logic and test case for same. ........ r71721 | benjamin.peterson | 2009-04-18 14:26:19 -0500 (Sat, 18 Apr 2009) | 1 line fix a few nits in unittest.py #5771 ........ r71729 | benjamin.peterson | 2009-04-18 16:03:10 -0500 (Sat, 18 Apr 2009) | 1 line move test to a more appropiate one ........ r71794 | vinay.sajip | 2009-04-22 07:10:47 -0500 (Wed, 22 Apr 2009) | 2 lines Issue #5170: Fixed regression caused when fixing #5768. ........ r71976 | mark.dickinson | 2009-04-26 14:54:55 -0500 (Sun, 26 Apr 2009) | 2 lines Fix typo in function name ........ r72036 | georg.brandl | 2009-04-27 12:04:23 -0500 (Mon, 27 Apr 2009) | 1 line #5848: small unittest doc patch. ........ r72037 | georg.brandl | 2009-04-27 12:09:53 -0500 (Mon, 27 Apr 2009) | 1 line #5840: dont claim we dont support TLS. ........ r72079 | r.david.murray | 2009-04-28 14:02:55 -0500 (Tue, 28 Apr 2009) | 2 lines Remove spurious 'u'. ........ r72085 | georg.brandl | 2009-04-28 16:48:35 -0500 (Tue, 28 Apr 2009) | 1 line Make the doctests in the docs pass, except for those in the turtle module. ........ r72131 | benjamin.peterson | 2009-04-29 17:43:35 -0500 (Wed, 29 Apr 2009) | 1 line fix test_shutil on ZFS #5676 ........ r72132 | georg.brandl | 2009-04-29 17:44:07 -0500 (Wed, 29 Apr 2009) | 1 line #5878: fix repr of re object. ........ r72133 | benjamin.peterson | 2009-04-29 17:44:15 -0500 (Wed, 29 Apr 2009) | 1 line make sure mode is removable while cleaning up test droppings ........ r72134 | benjamin.peterson | 2009-04-29 19:06:33 -0500 (Wed, 29 Apr 2009) | 1 line make sure to close file ........ r72191 | michael.foord | 2009-05-02 06:43:06 -0500 (Sat, 02 May 2009) | 9 lines Adds an exit parameter to unittest.main(). If False main no longer calls sys.exit. Closes issue 3379. Michael Foord ........ r72197 | benjamin.peterson | 2009-05-02 11:24:37 -0500 (Sat, 02 May 2009) | 1 line don't let sys.argv be used in the tests ........ r72198 | andrew.kuchling | 2009-05-02 12:12:15 -0500 (Sat, 02 May 2009) | 1 line Add items ........ r72219 | michael.foord | 2009-05-02 15:15:05 -0500 (Sat, 02 May 2009) | 8 lines Add addCleanup and doCleanups to unittest.TestCase. Closes issue 5679. Michael Foord ........ r72221 | benjamin.peterson | 2009-05-02 15:26:53 -0500 (Sat, 02 May 2009) | 1 line add myself ........ r72225 | michael.foord | 2009-05-02 17:43:34 -0500 (Sat, 02 May 2009) | 1 line ........ r72303 | benjamin.peterson | 2009-05-04 19:55:24 -0500 (Mon, 04 May 2009) | 1 line using sys._getframe(x), where x > 0 doesnt' work on IronPython ........ r72434 | r.david.murray | 2009-05-07 13:09:58 -0500 (Thu, 07 May 2009) | 2 lines Pre-opened test file needs to be opened in binary mode. ........ r72467 | georg.brandl | 2009-05-08 07:17:34 -0500 (Fri, 08 May 2009) | 1 line Fix name. ........ r72476 | thomas.heller | 2009-05-08 15:09:40 -0500 (Fri, 08 May 2009) | 4 lines Add a file that contains diffs between offical libffi files and the files in this repository. Should make it easier to merge new libffi versions. ........
119 lines
3.9 KiB
Python
119 lines
3.9 KiB
Python
from test.support import findfile, run_unittest, TESTFN
|
|
import unittest
|
|
import os
|
|
|
|
import aifc
|
|
|
|
|
|
class AIFCTest(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.f = self.fout = None
|
|
self.sndfilepath = findfile('Sine-1000Hz-300ms.aif')
|
|
|
|
def tearDown(self):
|
|
if self.f is not None:
|
|
self.f.close()
|
|
if self.fout is not None:
|
|
try:
|
|
self.fout.close()
|
|
except (aifc.Error, AttributeError):
|
|
pass
|
|
try:
|
|
os.remove(TESTFN)
|
|
except OSError:
|
|
pass
|
|
|
|
def test_skipunknown(self):
|
|
#Issue 2245
|
|
#This file contains chunk types aifc doesn't recognize.
|
|
self.f = aifc.open(self.sndfilepath)
|
|
|
|
def test_params(self):
|
|
f = self.f = aifc.open(self.sndfilepath)
|
|
self.assertEqual(f.getnchannels(), 2)
|
|
self.assertEqual(f.getsampwidth(), 2)
|
|
self.assertEqual(f.getframerate(), 48000)
|
|
self.assertEqual(f.getnframes(), 14400)
|
|
self.assertEqual(f.getcomptype(), b'NONE')
|
|
self.assertEqual(f.getcompname(), b'not compressed')
|
|
self.assertEqual(
|
|
f.getparams(),
|
|
(2, 2, 48000, 14400, b'NONE', b'not compressed'),
|
|
)
|
|
|
|
def test_read(self):
|
|
f = self.f = aifc.open(self.sndfilepath)
|
|
self.assertEqual(f.tell(), 0)
|
|
self.assertEqual(f.readframes(2), b'\x00\x00\x00\x00\x0b\xd4\x0b\xd4')
|
|
f.rewind()
|
|
pos0 = f.tell()
|
|
self.assertEqual(pos0, 0)
|
|
self.assertEqual(f.readframes(2), b'\x00\x00\x00\x00\x0b\xd4\x0b\xd4')
|
|
pos2 = f.tell()
|
|
self.assertEqual(pos2, 2)
|
|
self.assertEqual(f.readframes(2), b'\x17t\x17t"\xad"\xad')
|
|
f.setpos(pos2)
|
|
self.assertEqual(f.readframes(2), b'\x17t\x17t"\xad"\xad')
|
|
f.setpos(pos0)
|
|
self.assertEqual(f.readframes(2), b'\x00\x00\x00\x00\x0b\xd4\x0b\xd4')
|
|
|
|
def test_write(self):
|
|
f = self.f = aifc.open(self.sndfilepath)
|
|
fout = self.fout = aifc.open(TESTFN, 'wb')
|
|
fout.aifc()
|
|
fout.setparams(f.getparams())
|
|
for frame in range(f.getnframes()):
|
|
fout.writeframes(f.readframes(1))
|
|
fout.close()
|
|
fout = self.fout = aifc.open(TESTFN, 'rb')
|
|
f.rewind()
|
|
self.assertEqual(f.getparams(), fout.getparams())
|
|
self.assertEqual(f.readframes(5), fout.readframes(5))
|
|
|
|
def test_compress(self):
|
|
f = self.f = aifc.open(self.sndfilepath)
|
|
fout = self.fout = aifc.open(TESTFN, 'wb')
|
|
fout.aifc()
|
|
fout.setnchannels(f.getnchannels())
|
|
fout.setsampwidth(f.getsampwidth())
|
|
fout.setframerate(f.getframerate())
|
|
fout.setcomptype(b'ULAW', b'foo')
|
|
for frame in range(f.getnframes()):
|
|
fout.writeframes(f.readframes(1))
|
|
fout.close()
|
|
self.assertLess(
|
|
os.stat(TESTFN).st_size,
|
|
os.stat(self.sndfilepath).st_size*0.75,
|
|
)
|
|
fout = self.fout = aifc.open(TESTFN, 'rb')
|
|
f.rewind()
|
|
self.assertEqual(f.getparams()[0:3], fout.getparams()[0:3])
|
|
self.assertEqual(fout.getcomptype(), b'ULAW')
|
|
self.assertEqual(fout.getcompname(), b'foo')
|
|
# XXX: this test fails, not sure if it should succeed or not
|
|
# self.assertEqual(f.readframes(5), fout.readframes(5))
|
|
|
|
def test_close(self):
|
|
class Wrapfile(object):
|
|
def __init__(self, file):
|
|
self.file = open(file, 'rb')
|
|
self.closed = False
|
|
def close(self):
|
|
self.file.close()
|
|
self.closed = True
|
|
def __getattr__(self, attr): return getattr(self.file, attr)
|
|
testfile = Wrapfile(self.sndfilepath)
|
|
f = self.f = aifc.open(testfile)
|
|
self.assertEqual(testfile.closed, False)
|
|
f.close()
|
|
self.assertEqual(testfile.closed, True)
|
|
|
|
|
|
def test_main():
|
|
run_unittest(AIFCTest)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|