1# -*- coding: utf-8 -*- 2 3import os 4 5from mutagen.id3 import ID3, TIT1 6from mutagen.aac import AAC, AACError 7 8from tests import TestCase, DATA_DIR, get_temp_copy 9 10 11class TADTS(TestCase): 12 13 def setUp(self): 14 original = os.path.join(DATA_DIR, "empty.aac") 15 self.filename = get_temp_copy(original) 16 17 tag = ID3() 18 tag.add(TIT1(text=[u"a" * 5000], encoding=3)) 19 tag.save(self.filename) 20 21 self.aac = AAC(original) 22 self.aac_id3 = AAC(self.filename) 23 24 def tearDown(self): 25 os.remove(self.filename) 26 27 def test_channels(self): 28 self.failUnlessEqual(self.aac.info.channels, 2) 29 self.failUnlessEqual(self.aac_id3.info.channels, 2) 30 31 def test_bitrate(self): 32 self.failUnlessEqual(self.aac.info.bitrate, 3159) 33 self.failUnlessEqual(self.aac_id3.info.bitrate, 3159) 34 35 def test_sample_rate(self): 36 self.failUnlessEqual(self.aac.info.sample_rate, 44100) 37 self.failUnlessEqual(self.aac_id3.info.sample_rate, 44100) 38 39 def test_length(self): 40 self.failUnlessAlmostEqual(self.aac.info.length, 3.70, 2) 41 self.failUnlessAlmostEqual(self.aac_id3.info.length, 3.70, 2) 42 43 def test_not_my_file(self): 44 self.failUnlessRaises( 45 AACError, AAC, 46 os.path.join(DATA_DIR, "empty.ogg")) 47 48 self.failUnlessRaises( 49 AACError, AAC, 50 os.path.join(DATA_DIR, "silence-44-s.mp3")) 51 52 def test_pprint(self): 53 self.assertEqual(self.aac.pprint(), self.aac_id3.pprint()) 54 self.assertTrue("ADTS" in self.aac.pprint()) 55 56 57class TADIF(TestCase): 58 59 def setUp(self): 60 original = os.path.join(DATA_DIR, "adif.aac") 61 self.filename = get_temp_copy(original) 62 63 tag = ID3() 64 tag.add(TIT1(text=[u"a" * 5000], encoding=3)) 65 tag.save(self.filename) 66 67 self.aac = AAC(original) 68 self.aac_id3 = AAC(self.filename) 69 70 def tearDown(self): 71 os.remove(self.filename) 72 73 def test_channels(self): 74 self.failUnlessEqual(self.aac.info.channels, 2) 75 self.failUnlessEqual(self.aac_id3.info.channels, 2) 76 77 def test_bitrate(self): 78 self.failUnlessEqual(self.aac.info.bitrate, 128000) 79 self.failUnlessEqual(self.aac_id3.info.bitrate, 128000) 80 81 def test_sample_rate(self): 82 self.failUnlessEqual(self.aac.info.sample_rate, 48000) 83 self.failUnlessEqual(self.aac_id3.info.sample_rate, 48000) 84 85 def test_length(self): 86 self.failUnlessAlmostEqual(self.aac.info.length, 0.25, 2) 87 self.failUnlessAlmostEqual(self.aac_id3.info.length, 0.25, 2) 88 89 def test_not_my_file(self): 90 self.failUnlessRaises( 91 AACError, AAC, 92 os.path.join(DATA_DIR, "empty.ogg")) 93 94 self.failUnlessRaises( 95 AACError, AAC, 96 os.path.join(DATA_DIR, "silence-44-s.mp3")) 97 98 def test_pprint(self): 99 self.assertEqual(self.aac.pprint(), self.aac_id3.pprint()) 100 self.assertTrue("ADIF" in self.aac.pprint()) 101