Mercurial > cpython-lru_cache-weakref
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 |
| 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() |
