From cdce4ca10457ef0961d9b3f868200142392a855a Mon Sep 17 00:00:00 2001 From: Albert Santoni Date: Wed, 16 Apr 2014 16:42:37 -0400 Subject: [PATCH] CC-5709: Airtime Analyzer * Fixed the unit tests * Improved length testing because it seems to fluctuate a bit with your mutagen version (great, eh?) --- .../airtime_analyzer/metadata_analyzer.py | 3 --- .../tests/analyzer_pipeline_tests.py | 18 +++++++------- .../tests/metadata_analyzer_tests.py | 24 +++++++++++-------- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/python_apps/airtime_analyzer/airtime_analyzer/metadata_analyzer.py b/python_apps/airtime_analyzer/airtime_analyzer/metadata_analyzer.py index 1e29830d6..71462c45d 100644 --- a/python_apps/airtime_analyzer/airtime_analyzer/metadata_analyzer.py +++ b/python_apps/airtime_analyzer/airtime_analyzer/metadata_analyzer.py @@ -49,9 +49,6 @@ class MetadataAnalyzer(Analyzer): mime_magic = magic.Magic(mime=True) metadata["mime"] = mime_magic.from_file(filename) - if isinstance(info, mutagen.mp3.MPEGInfo): - print "mode is: " + str(info.mode) - #Try to get the number of channels if mutagen can... try: #Special handling for getting the # of channels from MP3s. It's in the "mode" field diff --git a/python_apps/airtime_analyzer/tests/analyzer_pipeline_tests.py b/python_apps/airtime_analyzer/tests/analyzer_pipeline_tests.py index ba7b6f202..cafa07b47 100644 --- a/python_apps/airtime_analyzer/tests/analyzer_pipeline_tests.py +++ b/python_apps/airtime_analyzer/tests/analyzer_pipeline_tests.py @@ -22,15 +22,15 @@ def test_basic(): q = multiprocessing.Queue() #This actually imports the file into the "./Test Artist" directory. AnalyzerPipeline.run_analysis(q, DEFAULT_AUDIO_FILE, u'.', filename) - results = q.get() - assert results['track_title'] == u'Test Title' - assert results['artist_name'] == u'Test Artist' - assert results['album_title'] == u'Test Album' - assert results['year'] == u'1999' - assert results['genre'] == u'Test Genre' - assert results['mime'] == 'audio/mpeg' # Not unicode because MIMEs aren't. - assert results['length_seconds'] == 3.90925 - assert results["length"] == str(datetime.timedelta(seconds=results["length_seconds"])) + metadata = q.get() + assert metadata['track_title'] == u'Test Title' + assert metadata['artist_name'] == u'Test Artist' + 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 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) @raises(TypeError) diff --git a/python_apps/airtime_analyzer/tests/metadata_analyzer_tests.py b/python_apps/airtime_analyzer/tests/metadata_analyzer_tests.py index 8baad0c54..6e59ae15a 100644 --- a/python_apps/airtime_analyzer/tests/metadata_analyzer_tests.py +++ b/python_apps/airtime_analyzer/tests/metadata_analyzer_tests.py @@ -25,7 +25,7 @@ def test_mp3_mono(): check_default_metadata(metadata) assert metadata['channels'] == 1 assert metadata['bit_rate'] == 64000 - assert metadata['length_seconds'] == 3.90925 + assert abs(metadata['length_seconds'] - 3.9) < 0.1 assert metadata['mime'] == 'audio/mpeg' # 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 @@ -35,7 +35,7 @@ def test_mp3_jointstereo(): check_default_metadata(metadata) assert metadata['channels'] == 2 assert metadata['bit_rate'] == 128000 - assert metadata['length_seconds'] == 3.90075 + assert abs(metadata['length_seconds'] - 3.9) < 0.1 assert metadata['mime'] == 'audio/mpeg' assert metadata['track_total'] == u'10' # MP3s can have a track_total @@ -44,7 +44,7 @@ def test_mp3_simplestereo(): check_default_metadata(metadata) assert metadata['channels'] == 2 assert metadata['bit_rate'] == 128000 - assert metadata['length_seconds'] == 3.90075 + assert abs(metadata['length_seconds'] - 3.9) < 0.1 assert metadata['mime'] == 'audio/mpeg' assert metadata['track_total'] == u'10' # MP3s can have a track_total @@ -53,7 +53,7 @@ def test_mp3_dualmono(): check_default_metadata(metadata) assert metadata['channels'] == 2 assert metadata['bit_rate'] == 128000 - assert metadata['length_seconds'] == 3.90075 + assert abs(metadata['length_seconds'] - 3.9) < 0.1 assert metadata['mime'] == 'audio/mpeg' assert metadata['track_total'] == u'10' # MP3s can have a track_total @@ -63,7 +63,7 @@ def test_ogg_mono(): check_default_metadata(metadata) assert metadata['channels'] == 1 assert metadata['bit_rate'] == 80000 - assert metadata['length_seconds'] == 3.8394104308390022 + assert abs(metadata['length_seconds'] - 3.8) < 0.1 assert metadata['mime'] == 'application/ogg' assert metadata['comment'] == u'Test Comment' @@ -72,7 +72,7 @@ def test_ogg_stereo(): check_default_metadata(metadata) assert metadata['channels'] == 2 assert metadata['bit_rate'] == 112000 - assert metadata['length_seconds'] == 3.8394104308390022 + assert abs(metadata['length_seconds'] - 3.8) < 0.1 assert metadata['mime'] == 'application/ogg' assert metadata['comment'] == u'Test Comment' @@ -84,7 +84,7 @@ def test_aac_mono(): check_default_metadata(metadata) assert metadata['channels'] == 1 assert metadata['bit_rate'] == 80000 - assert metadata['length_seconds'] == 3.8394104308390022 + assert abs(metadata['length_seconds'] - 3.8) < 0.1 assert metadata['mime'] == 'video/mp4' assert metadata['comment'] == u'Test Comment' ''' @@ -94,7 +94,7 @@ def test_aac_stereo(): check_default_metadata(metadata) assert metadata['channels'] == 2 assert metadata['bit_rate'] == 102619 - assert metadata['length_seconds'] == 3.8626303854875284 + assert abs(metadata['length_seconds'] - 3.8) < 0.1 assert metadata['mime'] == 'video/mp4' assert metadata['comment'] == u'Test Comment' @@ -110,7 +110,7 @@ def test_mp3_utf8(): assert metadata['track_number'] == u'1' assert metadata['channels'] == 2 assert metadata['bit_rate'] == 128000 - assert metadata['length_seconds'] == 3.90075 + assert abs(metadata['length_seconds'] - 3.9) < 0.1 assert metadata['mime'] == 'audio/mpeg' assert metadata['track_total'] == u'10' # MP3s can have a track_total @@ -143,7 +143,11 @@ def test_mp3_bad_channels(): check_default_metadata(metadata) assert metadata['channels'] == 1 assert metadata['bit_rate'] == 64000 - assert metadata['length_seconds'] == 3.90925 + 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['track_total'] == u'10' # MP3s can have a track_total #Mutagen doesn't extract comments from mp3s it seems + +def test_unparsable_file(): + MetadataAnalyzer.analyze(u'README.rst', dict())