diff --git a/src/parsers/audio.py b/src/parsers/audio.py index 5c5c527..c2c52e6 100644 --- a/src/parsers/audio.py +++ b/src/parsers/audio.py @@ -33,3 +33,6 @@ class MP3Parser(MutagenParser): class OGGParser(MutagenParser): mimetypes = {'audio/ogg', } + +class FLACParser(MutagenParser): + mimetypes = {'audio/flac', } diff --git a/tests/data/dirty.flac b/tests/data/dirty.flac new file mode 100644 index 0000000..4642a19 Binary files /dev/null and b/tests/data/dirty.flac differ diff --git a/tests/test_libmat2.py b/tests/test_libmat2.py index 50a9a97..27bb8d1 100644 --- a/tests/test_libmat2.py +++ b/tests/test_libmat2.py @@ -35,6 +35,11 @@ class TestGetMeta(unittest.TestCase): meta = p.get_meta() self.assertEqual(meta['TITLE'], ['I am so']) + def test_flac(self): + p = audio.FLACParser('./tests/data/dirty.flac') + meta = p.get_meta() + self.assertEqual(meta['TITLE'], ['I am so']) + class TestCleaning(unittest.TestCase): def test_pdf(self): @@ -112,3 +117,18 @@ class TestCleaning(unittest.TestCase): self.assertEqual(p.get_meta(), {}) os.remove('./tests/data/clean.ogg') + + def test_flac(self): + shutil.copy('./tests/data/dirty.flac', './tests/data/clean.flac') + p = audio.FLACParser('./tests/data/clean.flac') + + meta = p.get_meta() + self.assertEqual(meta['TITLE'], ['I am so']) + + ret = p.remove_all() + self.assertTrue(ret) + + p = audio.FLACParser('./tests/data/clean.flac.cleaned') + self.assertEqual(p.get_meta(), {}) + + os.remove('./tests/data/clean.flac')