Victor Stinner | e9ebde4 | 2010-07-13 23:04:56 +0000 | [diff] [blame] | 1 | import sndhdr |
R David Murray | 4487dd0 | 2014-10-09 16:59:30 -0400 | [diff] [blame] | 2 | import pickle |
Victor Stinner | e9ebde4 | 2010-07-13 23:04:56 +0000 | [diff] [blame] | 3 | import unittest |
| 4 | from test.support import findfile |
| 5 | |
| 6 | class TestFormats(unittest.TestCase): |
| 7 | def test_data(self): |
| 8 | for filename, expected in ( |
| 9 | ('sndhdr.8svx', ('8svx', 0, 1, 0, 8)), |
| 10 | ('sndhdr.aifc', ('aifc', 44100, 2, 5, 16)), |
| 11 | ('sndhdr.aiff', ('aiff', 44100, 2, 5, 16)), |
| 12 | ('sndhdr.au', ('au', 44100, 2, 5.0, 16)), |
| 13 | ('sndhdr.hcom', ('hcom', 22050.0, 1, -1, 8)), |
| 14 | ('sndhdr.sndt', ('sndt', 44100, 1, 5, 8)), |
| 15 | ('sndhdr.voc', ('voc', 0, 1, -1, 8)), |
R David Murray | 1a48b9d | 2013-03-18 17:42:42 -0400 | [diff] [blame] | 16 | ('sndhdr.wav', ('wav', 44100, 2, 5, 16)), |
Victor Stinner | e9ebde4 | 2010-07-13 23:04:56 +0000 | [diff] [blame] | 17 | ): |
| 18 | filename = findfile(filename, subdir="sndhdrdata") |
| 19 | what = sndhdr.what(filename) |
| 20 | self.assertNotEqual(what, None, filename) |
| 21 | self.assertSequenceEqual(what, expected) |
R David Murray | 4487dd0 | 2014-10-09 16:59:30 -0400 | [diff] [blame] | 22 | self.assertEqual(what.filetype, expected[0]) |
| 23 | self.assertEqual(what.framerate, expected[1]) |
| 24 | self.assertEqual(what.nchannels, expected[2]) |
| 25 | self.assertEqual(what.nframes, expected[3]) |
| 26 | self.assertEqual(what.sampwidth, expected[4]) |
| 27 | |
| 28 | def test_pickleable(self): |
| 29 | filename = findfile('sndhdr.aifc', subdir="sndhdrdata") |
| 30 | what = sndhdr.what(filename) |
Serhiy Storchaka | 65ee467 | 2014-12-15 14:06:02 +0200 | [diff] [blame] | 31 | for proto in range(pickle.HIGHEST_PROTOCOL + 1): |
| 32 | dump = pickle.dumps(what, proto) |
| 33 | self.assertEqual(pickle.loads(dump), what) |
R David Murray | 4487dd0 | 2014-10-09 16:59:30 -0400 | [diff] [blame] | 34 | |
Victor Stinner | e9ebde4 | 2010-07-13 23:04:56 +0000 | [diff] [blame] | 35 | |
| 36 | if __name__ == '__main__': |
| 37 | unittest.main() |