1 # -*- coding: utf-8 -*-
5 SRC_DIR = os.path.join(os.path.dirname(__file__), "../src")
7 if not SRC_DIR in sys.path:
8 sys.path.insert(0, SRC_DIR)
11 from mutagen_backend import MutagenBackend
16 def verify_MP3 (filename, expected_artist, expected_title, expected_album):
17 from mutagen.easyid3 import EasyID3
18 audio = EasyID3 (filename)
19 assert audio["artist"][0] == expected_artist
20 assert audio["title"][0] == expected_title
21 assert audio["album"][0] == expected_album
23 def verify_WMA (filename, expected_artist, expected_title, expected_album):
24 from mutagen.asf import ASF
25 audio = ASF (filename)
26 assert str(audio["Author"][0]) == expected_artist
27 assert str(audio["Title"][0]) == expected_title
28 assert str(audio["WM/AlbumTitle"][0]) == expected_album
30 def verify_autoguess (filename, expected_artist, expected_title, expected_album):
31 from mutagen import File
32 audio = File (filename)
33 assert audio["artist"][0] == expected_artist
34 assert audio["title"][0] == expected_title
35 assert audio["album"][0] == expected_album
38 class MutagenWritingTest (unittest.TestCase):
41 self.writer = MutagenBackend ()
43 def general_test (self, original, result, mime, verify_func = verify_autoguess):
45 Copy 'original' to 'result', modify metadat in 'result' and read again from there
48 out = open (result, 'w')
49 out.write (open (original,'r').read ())
52 self.writer.save_metadata_on_file (result, mime,
53 "artist_test", "title_test", "album_test")
54 verify_func (result, "artist_test", "title_test", "album_test")
56 self.writer.save_metadata_on_file (result, mime,
57 "artist_test_2", "title_test_2", "album_2")
58 verify_func (result, "artist_test_2", "title_test_2", "album_2")
64 TEST_FILE = "../test-files/empty.flac"
65 TEST_FILE_TO_BREAK = "../test-files/test-result.flac"
67 self.general_test (TEST_FILE, TEST_FILE_TO_BREAK, MIME)
70 TEST_FILE = "../test-files/empty.oga"
71 TEST_FILE_TO_BREAK = "../test-files/test-result.oga"
73 self.general_test (TEST_FILE, TEST_FILE_TO_BREAK, MIME)
75 def test_OGG_VORBIS (self):
76 TEST_FILE = "../test-files/empty-ogg-vorbis.ogg"
77 TEST_FILE_TO_BREAK = "../test-files/test-result.ogg"
78 MIME = "audio/ogg+vorbis"
79 self.general_test (TEST_FILE, TEST_FILE_TO_BREAK, MIME)
82 TEST_FILE = "../test-files/empty.mp3"
83 TEST_FILE_TO_BREAK = "../test-files/test-result.mp3"
85 self.general_test (TEST_FILE, TEST_FILE_TO_BREAK, MIME, verify_MP3)
88 TEST_FILE = "../test-files/empty.wma"
89 TEST_FILE_TO_BREAK = "../test-files/test-result.wma"
90 MIME = "audio/x-ms-wma"
91 print "Disabled WMA test (dunno how to cut the WMA file!)"
92 #self.general_test (TEST_FILE, TEST_FILE_TO_BREAK, MIME, verify_WMA)
96 if __name__ == "__main__":