blob: 426417c038208bdac5841b5fcd83db3a7311d5da [file] [log] [blame]
Victor Stinnere9ebde42010-07-13 23:04:56 +00001import sndhdr
R David Murray4487dd02014-10-09 16:59:30 -04002import pickle
Victor Stinnere9ebde42010-07-13 23:04:56 +00003import unittest
4from test.support import findfile
5
6class 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 Murray1a48b9d2013-03-18 17:42:42 -040016 ('sndhdr.wav', ('wav', 44100, 2, 5, 16)),
Victor Stinnere9ebde42010-07-13 23:04:56 +000017 ):
18 filename = findfile(filename, subdir="sndhdrdata")
19 what = sndhdr.what(filename)
20 self.assertNotEqual(what, None, filename)
21 self.assertSequenceEqual(what, expected)
R David Murray4487dd02014-10-09 16:59:30 -040022 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 Storchaka65ee4672014-12-15 14:06:02 +020031 for proto in range(pickle.HIGHEST_PROTOCOL + 1):
32 dump = pickle.dumps(what, proto)
33 self.assertEqual(pickle.loads(dump), what)
R David Murray4487dd02014-10-09 16:59:30 -040034
Victor Stinnere9ebde42010-07-13 23:04:56 +000035
36if __name__ == '__main__':
37 unittest.main()