Home | History | Annotate | Download | only in test
      1 import sndhdr
      2 import pickle
      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)),
     16             ('sndhdr.wav', ('wav', 44100, 2, 5, 16)),
     17         ):
     18             filename = findfile(filename, subdir="sndhdrdata")
     19             what = sndhdr.what(filename)
     20             self.assertNotEqual(what, None, filename)
     21             self.assertSequenceEqual(what, expected)
     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)
     31         for proto in range(pickle.HIGHEST_PROTOCOL + 1):
     32             dump = pickle.dumps(what, proto)
     33             self.assertEqual(pickle.loads(dump), what)
     34 
     35 
     36 if __name__ == '__main__':
     37     unittest.main()
     38