annotate Lib/test/test_wave.py @ 79691:05c8928362ee

Merge __next__ method link fixes with 3.3.
author Ezio Melotti <ezio.melotti@gmail.com>
date Fri, 12 Oct 2012 13:46:37 +0300
parents 5dc06a059630
children ee7563b07c6f 340a12c18b7f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 45192
diff changeset
1 from test.support import TESTFN, run_unittest
24710
11c701038805 Massive changes from SF 589982 (tempfile.py rewrite, by Zack
Guido van Rossum <guido@python.org>
parents: 24364
diff changeset
2 import os
15124
3ae9d313bc33 Simple test suite for wave.py by Jean-Claude Rimbault (with some
Guido van Rossum <guido@python.org>
parents:
diff changeset
3 import wave
58286
a6bf68e6e824 use floor division where needed #7681
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
4 import struct
45192
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
5 import unittest
15124
3ae9d313bc33 Simple test suite for wave.py by Jean-Claude Rimbault (with some
Guido van Rossum <guido@python.org>
parents:
diff changeset
6
3ae9d313bc33 Simple test suite for wave.py by Jean-Claude Rimbault (with some
Guido van Rossum <guido@python.org>
parents:
diff changeset
7 nchannels = 2
3ae9d313bc33 Simple test suite for wave.py by Jean-Claude Rimbault (with some
Guido van Rossum <guido@python.org>
parents:
diff changeset
8 sampwidth = 2
3ae9d313bc33 Simple test suite for wave.py by Jean-Claude Rimbault (with some
Guido van Rossum <guido@python.org>
parents:
diff changeset
9 framerate = 8000
3ae9d313bc33 Simple test suite for wave.py by Jean-Claude Rimbault (with some
Guido van Rossum <guido@python.org>
parents:
diff changeset
10 nframes = 100
3ae9d313bc33 Simple test suite for wave.py by Jean-Claude Rimbault (with some
Guido van Rossum <guido@python.org>
parents:
diff changeset
11
45192
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
12 class TestWave(unittest.TestCase):
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
13
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
14 def setUp(self):
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
15 self.f = None
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
16
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
17 def tearDown(self):
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
18 if self.f is not None:
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
19 self.f.close()
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
20 try:
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
21 os.remove(TESTFN)
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
22 except OSError:
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
23 pass
15124
3ae9d313bc33 Simple test suite for wave.py by Jean-Claude Rimbault (with some
Guido van Rossum <guido@python.org>
parents:
diff changeset
24
64297
5dc06a059630 Issue #1512791: In setframerate method of Wave_write, round non-integral
Mark Dickinson <dickinsm@gmail.com>
parents: 58286
diff changeset
25 def test_it(self, test_rounding=False):
45192
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
26 self.f = wave.open(TESTFN, 'wb')
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
27 self.f.setnchannels(nchannels)
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
28 self.f.setsampwidth(sampwidth)
64297
5dc06a059630 Issue #1512791: In setframerate method of Wave_write, round non-integral
Mark Dickinson <dickinsm@gmail.com>
parents: 58286
diff changeset
29 if test_rounding:
5dc06a059630 Issue #1512791: In setframerate method of Wave_write, round non-integral
Mark Dickinson <dickinsm@gmail.com>
parents: 58286
diff changeset
30 self.f.setframerate(framerate - 0.1)
5dc06a059630 Issue #1512791: In setframerate method of Wave_write, round non-integral
Mark Dickinson <dickinsm@gmail.com>
parents: 58286
diff changeset
31 else:
5dc06a059630 Issue #1512791: In setframerate method of Wave_write, round non-integral
Mark Dickinson <dickinsm@gmail.com>
parents: 58286
diff changeset
32 self.f.setframerate(framerate)
45192
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
33 self.f.setnframes(nframes)
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
34 output = b'\0' * nframes * nchannels * sampwidth
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
35 self.f.writeframes(output)
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
36 self.f.close()
15124
3ae9d313bc33 Simple test suite for wave.py by Jean-Claude Rimbault (with some
Guido van Rossum <guido@python.org>
parents:
diff changeset
37
45192
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
38 self.f = wave.open(TESTFN, 'rb')
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
39 self.assertEqual(nchannels, self.f.getnchannels())
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
40 self.assertEqual(sampwidth, self.f.getsampwidth())
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
41 self.assertEqual(framerate, self.f.getframerate())
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
42 self.assertEqual(nframes, self.f.getnframes())
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
43 self.assertEqual(self.f.readframes(nframes), output)
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
44
64297
5dc06a059630 Issue #1512791: In setframerate method of Wave_write, round non-integral
Mark Dickinson <dickinsm@gmail.com>
parents: 58286
diff changeset
45 def test_fractional_framerate(self):
5dc06a059630 Issue #1512791: In setframerate method of Wave_write, round non-integral
Mark Dickinson <dickinsm@gmail.com>
parents: 58286
diff changeset
46 """
5dc06a059630 Issue #1512791: In setframerate method of Wave_write, round non-integral
Mark Dickinson <dickinsm@gmail.com>
parents: 58286
diff changeset
47 Addresses [ 1512791 ] module wave does no rounding
5dc06a059630 Issue #1512791: In setframerate method of Wave_write, round non-integral
Mark Dickinson <dickinsm@gmail.com>
parents: 58286
diff changeset
48 Floating point framerates should be rounded, rather than truncated.
5dc06a059630 Issue #1512791: In setframerate method of Wave_write, round non-integral
Mark Dickinson <dickinsm@gmail.com>
parents: 58286
diff changeset
49 """
5dc06a059630 Issue #1512791: In setframerate method of Wave_write, round non-integral
Mark Dickinson <dickinsm@gmail.com>
parents: 58286
diff changeset
50 self.test_it(test_rounding=True)
5dc06a059630 Issue #1512791: In setframerate method of Wave_write, round non-integral
Mark Dickinson <dickinsm@gmail.com>
parents: 58286
diff changeset
51
58286
a6bf68e6e824 use floor division where needed #7681
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
52 def test_issue7681(self):
a6bf68e6e824 use floor division where needed #7681
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
53 self.f = wave.open(TESTFN, 'wb')
a6bf68e6e824 use floor division where needed #7681
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
54 self.f.setnchannels(nchannels)
a6bf68e6e824 use floor division where needed #7681
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
55 self.f.setsampwidth(sampwidth)
a6bf68e6e824 use floor division where needed #7681
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
56 self.f.setframerate(framerate)
a6bf68e6e824 use floor division where needed #7681
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
57 # Don't call setnframes, make _write_header divide to figure it out
a6bf68e6e824 use floor division where needed #7681
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
58 output = b'\0' * nframes * nchannels * sampwidth
a6bf68e6e824 use floor division where needed #7681
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
59 self.f.writeframes(output)
a6bf68e6e824 use floor division where needed #7681
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
60
a6bf68e6e824 use floor division where needed #7681
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
61
45192
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
62 def test_main():
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
63 run_unittest(TestWave)
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
64
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
65 if __name__ == '__main__':
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 43014
diff changeset
66 test_main()