1# -*- coding: utf-8 -*- 2 3import os 4 5from mutagen.monkeysaudio import MonkeysAudio, MonkeysAudioHeaderError 6from tests import TestCase, DATA_DIR 7 8 9class TMonkeysAudio(TestCase): 10 11 def setUp(self): 12 self.mac399 = MonkeysAudio(os.path.join(DATA_DIR, "mac-399.ape")) 13 self.mac396 = MonkeysAudio(os.path.join(DATA_DIR, "mac-396.ape")) 14 self.mac390 = MonkeysAudio(os.path.join(DATA_DIR, "mac-390-hdr.ape")) 15 16 def test_channels(self): 17 self.failUnlessEqual(self.mac399.info.channels, 2) 18 self.failUnlessEqual(self.mac396.info.channels, 2) 19 self.failUnlessEqual(self.mac390.info.channels, 2) 20 21 def test_sample_rate(self): 22 self.failUnlessEqual(self.mac399.info.sample_rate, 44100) 23 self.failUnlessEqual(self.mac396.info.sample_rate, 44100) 24 self.failUnlessEqual(self.mac390.info.sample_rate, 44100) 25 26 def test_length(self): 27 self.failUnlessAlmostEqual(self.mac399.info.length, 3.68, 2) 28 self.failUnlessAlmostEqual(self.mac396.info.length, 3.68, 2) 29 self.failUnlessAlmostEqual(self.mac390.info.length, 15.63, 2) 30 31 def test_bits_per_sample(self): 32 assert self.mac399.info.bits_per_sample == 16 33 assert self.mac396.info.bits_per_sample == 16 34 assert self.mac390.info.bits_per_sample == 16 35 36 def test_version(self): 37 self.failUnlessEqual(self.mac399.info.version, 3.99) 38 self.failUnlessEqual(self.mac396.info.version, 3.96) 39 self.failUnlessEqual(self.mac390.info.version, 3.90) 40 41 def test_not_my_file(self): 42 self.failUnlessRaises( 43 MonkeysAudioHeaderError, MonkeysAudio, 44 os.path.join(DATA_DIR, "empty.ogg")) 45 self.failUnlessRaises( 46 MonkeysAudioHeaderError, MonkeysAudio, 47 os.path.join(DATA_DIR, "click.mpc")) 48 49 def test_mime(self): 50 self.failUnless("audio/x-ape" in self.mac399.mime) 51 52 def test_pprint(self): 53 self.failUnless(self.mac399.pprint()) 54 self.failUnless(self.mac396.pprint()) 55