1import pickle 2import unittest 3from test.support import findfile 4from test.support import warnings_helper 5 6sndhdr = warnings_helper.import_deprecated("sndhdr") 7 8 9class TestFormats(unittest.TestCase): 10 def test_data(self): 11 for filename, expected in ( 12 ('sndhdr.8svx', ('8svx', 0, 1, 0, 8)), 13 ('sndhdr.aifc', ('aifc', 44100, 2, 5, 16)), 14 ('sndhdr.aiff', ('aiff', 44100, 2, 5, 16)), 15 ('sndhdr.au', ('au', 44100, 2, 5.0, 16)), 16 ('sndhdr.hcom', ('hcom', 22050.0, 1, -1, 8)), 17 ('sndhdr.sndt', ('sndt', 44100, 1, 5, 8)), 18 ('sndhdr.voc', ('voc', 0, 1, -1, 8)), 19 ('sndhdr.wav', ('wav', 44100, 2, 5, 16)), 20 ): 21 filename = findfile(filename, subdir="sndhdrdata") 22 what = sndhdr.what(filename) 23 self.assertNotEqual(what, None, filename) 24 self.assertSequenceEqual(what, expected) 25 self.assertEqual(what.filetype, expected[0]) 26 self.assertEqual(what.framerate, expected[1]) 27 self.assertEqual(what.nchannels, expected[2]) 28 self.assertEqual(what.nframes, expected[3]) 29 self.assertEqual(what.sampwidth, expected[4]) 30 31 def test_pickleable(self): 32 filename = findfile('sndhdr.aifc', subdir="sndhdrdata") 33 what = sndhdr.what(filename) 34 for proto in range(pickle.HIGHEST_PROTOCOL + 1): 35 dump = pickle.dumps(what, proto) 36 self.assertEqual(pickle.loads(dump), what) 37 38 39if __name__ == '__main__': 40 unittest.main() 41