r72115 - python/trunk/Lib/test/test_aifc.py
Author: r.david.murray Date: Wed Apr 29 22:15:18 2009 New Revision: 72115 Log: More aifc tests. Modified: python/trunk/Lib/test/test_aifc.py Modified: python/trunk/Lib/test/test_aifc.py ============================================================================== --- python/trunk/Lib/test/test_aifc.py (original) +++ python/trunk/Lib/test/test_aifc.py Wed Apr 29 22:15:18 2009 @@ -1,5 +1,6 @@ -from test.test_support import findfile, run_unittest +from test.test_support import findfile, run_unittest, TESTFN import unittest +import os import aifc @@ -7,16 +8,29 @@ 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. f = aifc.open(self.sndfilepath) - f.close() def test_params(self): - f = aifc.open(self.sndfilepath) + f = self.f = aifc.open(self.sndfilepath) self.assertEqual(f.getnchannels(), 2) self.assertEqual(f.getsampwidth(), 2) self.assertEqual(f.getframerate(), 48000) @@ -24,10 +38,9 @@ self.assertEqual(f.getcomptype(), 'NONE') self.assertEqual(f.getcompname(), 'not compressed') self.assertEqual(f.getparams(), (2, 2, 48000, 14400, 'NONE', 'not compressed')) - f.close() def test_read(self): - f = aifc.open(self.sndfilepath) + f = self.f = aifc.open(self.sndfilepath) self.assertEqual(f.tell(), 0) self.assertEqual(f.readframes(2), '\x00\x00\x00\x00\x0b\xd4\x0b\xd4') f.rewind() @@ -41,9 +54,42 @@ self.assertEqual(f.readframes(2), '\x17t\x17t"\xad"\xad') f.setpos(pos0) self.assertEqual(f.readframes(2), '\x00\x00\x00\x00\x0b\xd4\x0b\xd4') - f.close() - #XXX Need more tests! + 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('ULAW', '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(), 'ULAW') + self.assertEqual(fout.getcompname(), 'foo') + # XXX: this test fails, not sure if it should succeed or not + # self.assertEqual(f.readframes(5), fout.readframes(5)) def test_main():
participants (1)
-
r.david.murray