catch Ogg header error (#133)

This commit is contained in:
Adrian Sampson 2011-03-23 11:51:27 -07:00
parent 7baf41827d
commit c698868bf0
2 changed files with 7 additions and 0 deletions

View file

@ -31,6 +31,7 @@ if no tag is present. If no value is available, the value will be false
import mutagen
import mutagen.mp3
import mutagen.oggvorbis
import mutagen.mp4
import mutagen.flac
import mutagen.monkeysaudio
@ -109,6 +110,7 @@ def _safe_cast(out_type, val):
else:
return val
# Flags for encoding field behavior.
class Enumeration(object):
@ -487,6 +489,7 @@ class MediaFile(object):
mutagen.flac.FLACNoHeaderError,
mutagen.monkeysaudio.MonkeysAudioHeaderError,
mutagen.mp4.MP4StreamInfoError,
mutagen.oggvorbis.OggVorbisHeaderError,
)
try:
self.mgfile = mutagen.File(path)

View file

@ -109,6 +109,10 @@ class SafetyTest(unittest.TestCase):
def test_corrupt_ogg_raises_unreadablefileerror(self):
self._exccheck('corrupt.ogg', beets.mediafile.UnreadableFileError)
def test_invalid_ogg_header_raises_unreadablefileerror(self):
self._exccheck('corrupt.ogg', beets.mediafile.UnreadableFileError,
'OggS\x01vorbis')
def test_corrupt_monkeys_raises_unreadablefileerror(self):
self._exccheck('corrupt.ape', beets.mediafile.UnreadableFileError)