CC-5709: Airtime Analyzer

* Fixed some unit tests that broken when I dropped python-magic in
  favour of mutagen for MIME type detection
This commit is contained in:
Albert Santoni 2014-04-23 18:20:50 -04:00
parent 0a906ba6ec
commit bc72a6626e
4 changed files with 14 additions and 13 deletions

View File

@ -52,7 +52,7 @@ class MetadataAnalyzer(Analyzer):
try:
#Special handling for getting the # of channels from MP3s. It's in the "mode" field
#which is 0=Stereo, 1=Joint Stereo, 2=Dual Channel, 3=Mono. Part of the ID3 spec...
if metadata["mime"] == "audio/mpeg":
if metadata["mime"] in ["audio/mpeg", 'audio/mp3']:
if info.mode == 3:
metadata["channels"] = 1
else:

View File

@ -98,7 +98,8 @@ def send_http_request(picklable_request, retry_queue):
logging.error("HTTP request failed with unhandled exception. %s" % str(e))
# Don't put the request into the retry queue, just give up on this one.
# I'm doing this to protect against us getting some pathological request
# that breaks our code. I don't want us having
# that breaks our code. I don't want us pickling data that potentially
# breaks airtime_analyzer.

View File

@ -28,7 +28,7 @@ def test_basic():
assert metadata['album_title'] == u'Test Album'
assert metadata['year'] == u'1999'
assert metadata['genre'] == u'Test Genre'
assert metadata['mime'] == 'audio/mpeg' # Not unicode because MIMEs aren't.
assert metadata['mime'] == 'audio/mp3' # Not unicode because MIMEs aren't.
assert abs(metadata['length_seconds'] - 3.9) < 0.1
assert metadata["length"] == str(datetime.timedelta(seconds=metadata["length_seconds"]))
assert os.path.exists(DEFAULT_IMPORT_DEST)

View File

@ -26,7 +26,7 @@ def test_mp3_mono():
assert metadata['channels'] == 1
assert metadata['bit_rate'] == 64000
assert abs(metadata['length_seconds'] - 3.9) < 0.1
assert metadata['mime'] == 'audio/mpeg' # Not unicode because MIMEs aren't.
assert metadata['mime'] == 'audio/mp3' # Not unicode because MIMEs aren't.
assert metadata['track_total'] == u'10' # MP3s can have a track_total
#Mutagen doesn't extract comments from mp3s it seems
@ -36,7 +36,7 @@ def test_mp3_jointstereo():
assert metadata['channels'] == 2
assert metadata['bit_rate'] == 128000
assert abs(metadata['length_seconds'] - 3.9) < 0.1
assert metadata['mime'] == 'audio/mpeg'
assert metadata['mime'] == 'audio/mp3'
assert metadata['track_total'] == u'10' # MP3s can have a track_total
def test_mp3_simplestereo():
@ -45,7 +45,7 @@ def test_mp3_simplestereo():
assert metadata['channels'] == 2
assert metadata['bit_rate'] == 128000
assert abs(metadata['length_seconds'] - 3.9) < 0.1
assert metadata['mime'] == 'audio/mpeg'
assert metadata['mime'] == 'audio/mp3'
assert metadata['track_total'] == u'10' # MP3s can have a track_total
def test_mp3_dualmono():
@ -54,7 +54,7 @@ def test_mp3_dualmono():
assert metadata['channels'] == 2
assert metadata['bit_rate'] == 128000
assert abs(metadata['length_seconds'] - 3.9) < 0.1
assert metadata['mime'] == 'audio/mpeg'
assert metadata['mime'] == 'audio/mp3'
assert metadata['track_total'] == u'10' # MP3s can have a track_total
@ -64,7 +64,7 @@ def test_ogg_mono():
assert metadata['channels'] == 1
assert metadata['bit_rate'] == 80000
assert abs(metadata['length_seconds'] - 3.8) < 0.1
assert metadata['mime'] == 'application/ogg'
assert metadata['mime'] == 'audio/vorbis'
assert metadata['comment'] == u'Test Comment'
def test_ogg_stereo():
@ -73,7 +73,7 @@ def test_ogg_stereo():
assert metadata['channels'] == 2
assert metadata['bit_rate'] == 112000
assert abs(metadata['length_seconds'] - 3.8) < 0.1
assert metadata['mime'] == 'application/ogg'
assert metadata['mime'] == 'audio/vorbis'
assert metadata['comment'] == u'Test Comment'
''' faac and avconv can't seem to create a proper mono AAC file... ugh
@ -85,7 +85,7 @@ def test_aac_mono():
assert metadata['channels'] == 1
assert metadata['bit_rate'] == 80000
assert abs(metadata['length_seconds'] - 3.8) < 0.1
assert metadata['mime'] == 'video/mp4'
assert metadata['mime'] == 'audio/mp4'
assert metadata['comment'] == u'Test Comment'
'''
@ -95,7 +95,7 @@ def test_aac_stereo():
assert metadata['channels'] == 2
assert metadata['bit_rate'] == 102619
assert abs(metadata['length_seconds'] - 3.8) < 0.1
assert metadata['mime'] == 'video/mp4'
assert metadata['mime'] == 'audio/mp4'
assert metadata['comment'] == u'Test Comment'
def test_mp3_utf8():
@ -111,7 +111,7 @@ def test_mp3_utf8():
assert metadata['channels'] == 2
assert metadata['bit_rate'] == 128000
assert abs(metadata['length_seconds'] - 3.9) < 0.1
assert metadata['mime'] == 'audio/mpeg'
assert metadata['mime'] == 'audio/mp3'
assert metadata['track_total'] == u'10' # MP3s can have a track_total
# Make sure the parameter checking works
@ -145,7 +145,7 @@ def test_mp3_bad_channels():
assert metadata['bit_rate'] == 64000
print metadata['length_seconds']
assert abs(metadata['length_seconds'] - 3.9) < 0.1
assert metadata['mime'] == 'audio/mpeg' # Not unicode because MIMEs aren't.
assert metadata['mime'] == 'audio/mp3' # Not unicode because MIMEs aren't.
assert metadata['track_total'] == u'10' # MP3s can have a track_total
#Mutagen doesn't extract comments from mp3s it seems