From: Ivan Frade Date: Fri, 26 Feb 2010 15:30:25 +0000 (+0200) Subject: Added test for mutagen. Included 3 sec. files in different formats X-Git-Tag: mussorgsky-0.5-1~17 X-Git-Url: http://vcs.maemo.org/git/?a=commitdiff_plain;ds=sidebyside;h=e6a693eec03ad6a29a6b81f47003e77147704a1b;p=mussorgsky Added test for mutagen. Included 3 sec. files in different formats --- diff --git a/test-files/README b/test-files/README new file mode 100644 index 0000000..215de65 --- /dev/null +++ b/test-files/README @@ -0,0 +1,8 @@ +FILES for test purpouse +======================= + +These files are cuts of 3 seconds from music files encoded in +different formats. They are included in the repository for testing +purpouse, and are pretty useless and harmless. + +We hope this doesn't provoke any copyright issue. diff --git a/test-files/empty-ogg-vorbis.ogg b/test-files/empty-ogg-vorbis.ogg new file mode 100644 index 0000000..6979cd6 Binary files /dev/null and b/test-files/empty-ogg-vorbis.ogg differ diff --git a/test-files/empty.flac b/test-files/empty.flac new file mode 100644 index 0000000..99aaf08 Binary files /dev/null and b/test-files/empty.flac differ diff --git a/test-files/empty.mp3 b/test-files/empty.mp3 new file mode 100644 index 0000000..9b30b3d Binary files /dev/null and b/test-files/empty.mp3 differ diff --git a/test-files/empty.oga b/test-files/empty.oga new file mode 100644 index 0000000..8beca75 Binary files /dev/null and b/test-files/empty.oga differ diff --git a/test/mutagen-test.py b/test/mutagen-test.py new file mode 100644 index 0000000..1c93e27 --- /dev/null +++ b/test/mutagen-test.py @@ -0,0 +1,89 @@ +# -*- coding: utf-8 -*- +import sys +import os + +SRC_DIR = os.path.join(os.path.dirname(__file__), "../src") + +if not SRC_DIR in sys.path: + sys.path.insert(0, SRC_DIR) + +import unittest +from mutagen_backend import MutagenBackend + + +import os + +def verify_MP3 (filename, expected_artist, expected_title, expected_album): + from mutagen.easyid3 import EasyID3 + audio = EasyID3 (filename) + assert audio["artist"][0] == expected_artist + assert audio["title"][0] == expected_title + assert audio["album"][0] == expected_album + +def verify_wma (filename, expected_artist, expected_title, expected_album): + from mutagen.asf import ASF + audio = ASF (filename) + assert str(audio["Author"][0]) == expected_artist + assert str(audio["Title"][0]) == expected_title + assert str(audio["WM/AlbumTitle"][0]) == expected_album + +def verify_autoguess (filename, expected_artist, expected_title, expected_album): + from mutagen import File + audio = File (filename) + assert audio["artist"][0] == expected_artist + assert audio["title"][0] == expected_title + assert audio["album"][0] == expected_album + + +class MutagenWritingTest (unittest.TestCase): + + def setUp (self): + self.writer = MutagenBackend () + + def general_test (self, original, result, mime, verify_func = verify_autoguess): + """ + Copy 'original' to 'result', modify metadat in 'result' and read again from there + """ + + out = open (result, 'w') + out.write (open (original,'r').read ()) + out.close () + + self.writer.save_metadata_on_file (result, mime, + "artist_test", "title_test", "album_test") + verify_func (result, "artist_test", "title_test", "album_test") + + self.writer.save_metadata_on_file (result, mime, + "artist_test_2", "title_test_2", "album_2") + verify_func (result, "artist_test_2", "title_test_2", "album_2") + + os.unlink (result) + + + def test_FLAC (self): + TEST_FILE = "../test-files/empty.flac" + TEST_FILE_TO_BREAK = "../test-files/test-result.flac" + MIME = "audio/x-flac" + self.general_test (TEST_FILE, TEST_FILE_TO_BREAK, MIME) + + def test_OGG (self): + TEST_FILE = "../test-files/empty.oga" + TEST_FILE_TO_BREAK = "../test-files/test-result.oga" + MIME = "audio/ogg" + self.general_test (TEST_FILE, TEST_FILE_TO_BREAK, MIME) + + def test_OGG_VORBIS (self): + TEST_FILE = "../test-files/empty-ogg-vorbis.ogg" + TEST_FILE_TO_BREAK = "../test-files/test-result.ogg" + MIME = "audio/ogg+vorbis" + self.general_test (TEST_FILE, TEST_FILE_TO_BREAK, MIME) + + def test_MP3 (self): + TEST_FILE = "../test-files/empty.mp3" + TEST_FILE_TO_BREAK = "../test-files/test-result.mp3" + MIME = "audio/mpeg" + self.general_test (TEST_FILE, TEST_FILE_TO_BREAK, MIME, verify_MP3) + + +if __name__ == "__main__": + unittest.main ()