1# -*- coding: utf-8 -*-
2
3import os
4
5from mutagen.wavpack import WavPack, error as WavPackError
6from tests import TestCase, DATA_DIR
7
8
9class TWavPack(TestCase):
10
11    def setUp(self):
12        self.audio = WavPack(os.path.join(DATA_DIR, "silence-44-s.wv"))
13
14    def test_version(self):
15        self.failUnlessEqual(self.audio.info.version, 0x403)
16
17    def test_channels(self):
18        self.failUnlessEqual(self.audio.info.channels, 2)
19
20    def test_sample_rate(self):
21        self.failUnlessEqual(self.audio.info.sample_rate, 44100)
22
23    def test_length(self):
24        self.failUnlessAlmostEqual(self.audio.info.length, 3.68, 2)
25
26    def test_not_my_file(self):
27        self.failUnlessRaises(
28            WavPackError, WavPack, os.path.join(DATA_DIR, "empty.ogg"))
29
30    def test_pprint(self):
31        self.audio.pprint()
32
33    def test_mime(self):
34        self.failUnless("audio/x-wavpack" in self.audio.mime)
35
36
37class TWavPackNoLength(TestCase):
38
39    def setUp(self):
40        self.audio = WavPack(os.path.join(DATA_DIR, "no_length.wv"))
41
42    def test_version(self):
43        self.failUnlessEqual(self.audio.info.version, 0x407)
44
45    def test_channels(self):
46        self.failUnlessEqual(self.audio.info.channels, 2)
47
48    def test_sample_rate(self):
49        self.failUnlessEqual(self.audio.info.sample_rate, 44100)
50
51    def test_length(self):
52        self.failUnlessAlmostEqual(self.audio.info.length, 3.705, 3)
53
54    def test_pprint(self):
55        self.audio.pprint()
56
57    def test_mime(self):
58        self.failUnless("audio/x-wavpack" in self.audio.mime)
59