diff --git a/tests/test_walk.py b/tests/test_walk.py index 8250f7d..63df1ab 100644 --- a/tests/test_walk.py +++ b/tests/test_walk.py @@ -1,6 +1,7 @@ import unittest import wavinfo + class TestWalk(unittest.TestCase): def test_walk_metadata(self): test_file = 'tests/test_files/protools/PT A101_4.A1.wav' diff --git a/tests/test_wave_parsing.py b/tests/test_wave_parsing.py index d821887..85897e1 100644 --- a/tests/test_wave_parsing.py +++ b/tests/test_wave_parsing.py @@ -6,34 +6,35 @@ from unittest import TestCase from .utils import all_files, ffprobe import wavinfo - + + class TestWaveInfo(TestCase): def test_sanity(self): for wav_file in all_files(): info = wavinfo.WavInfoReader(wav_file) - self.assertTrue(info is not None) + self.assertEqual(info.__repr__(), 'WavInfoReader(%s, %s, %s)'.format(wav_file, 'latin_1', 'ascii')) + self.assertIsNotNone(info) def test_fmt_against_ffprobe(self): for wav_file in all_files(): info = wavinfo.WavInfoReader(wav_file) ffprobe_info = ffprobe(wav_file) - self.assertEqual( info.fmt.channel_count , ffprobe_info['streams'][0]['channels'] ) - self.assertEqual( info.fmt.sample_rate , int(ffprobe_info['streams'][0]['sample_rate']) ) - self.assertEqual( info.fmt.bits_per_sample, int(ffprobe_info['streams'][0]['bits_per_raw_sample']) ) + self.assertEqual(info.fmt.channel_count, ffprobe_info['streams'][0]['channels']) + self.assertEqual(info.fmt.sample_rate, int(ffprobe_info['streams'][0]['sample_rate'])) + self.assertEqual(info.fmt.bits_per_sample, int(ffprobe_info['streams'][0]['bits_per_raw_sample'])) if info.fmt.audio_format == 1: - self.assertTrue(ffprobe_info['streams'][0]['codec_name'].startswith('pcm') ) - byte_rate = int(ffprobe_info['streams'][0]['sample_rate']) \ - * ffprobe_info['streams'][0]['channels'] \ - * int(ffprobe_info['streams'][0]['bits_per_raw_sample']) / 8 - self.assertEqual( info.fmt.byte_rate , byte_rate ) + self.assertTrue(ffprobe_info['streams'][0]['codec_name'].startswith('pcm')) + streams = ffprobe_info['streams'][0] + byte_rate = int(streams['sample_rate']) * streams['channels'] * int(streams['bits_per_raw_sample']) / 8 + self.assertEqual(info.fmt.byte_rate, byte_rate) def test_data_against_ffprobe(self): for wav_file in all_files(): info = wavinfo.WavInfoReader(wav_file) ffprobe_info = ffprobe(wav_file) - self.assertEqual( info.data.frame_count, int(ffprobe_info['streams'][0]['duration_ts'] )) + self.assertEqual(info.data.frame_count, int(ffprobe_info['streams'][0]['duration_ts'])) def test_bext_against_ffprobe(self): for wav_file in all_files(): @@ -41,40 +42,40 @@ class TestWaveInfo(TestCase): ffprobe_info = ffprobe(wav_file) if info.bext: if 'comment' in ffprobe_info['format']['tags']: - self.assertEqual( info.bext.description, ffprobe_info['format']['tags']['comment'] ) - else: - self.assertEqual( info.bext.description , '') - + self.assertEqual(info.bext.description, ffprobe_info['format']['tags']['comment']) + else: + self.assertEqual(info.bext.description, '') + if 'encoded_by' in ffprobe_info['format']['tags']: - self.assertEqual( info.bext.originator, ffprobe_info['format']['tags']['encoded_by'] ) + self.assertEqual(info.bext.originator, ffprobe_info['format']['tags']['encoded_by']) else: - self.assertEqual( info.bext.originator, '') - + self.assertEqual(info.bext.originator, '') + if 'originator_reference' in ffprobe_info['format']['tags']: - self.assertEqual( info.bext.originator_ref, ffprobe_info['format']['tags']['originator_reference'] ) + self.assertEqual(info.bext.originator_ref, ffprobe_info['format']['tags']['originator_reference']) else: - self.assertEqual( info.bext.originator_ref, '') + self.assertEqual(info.bext.originator_ref, '') # these don't always reflect the bext info - # self.assertEqual( info.bext.originator_date, ffprobe_info['format']['tags']['date'] ) - # self.assertEqual( info.bext.originator_time, ffprobe_info['format']['tags']['creation_time'] ) - self.assertEqual( info.bext.time_reference, int(ffprobe_info['format']['tags']['time_reference']) ) + # self.assertEqual(info.bext.originator_date, ffprobe_info['format']['tags']['date']) + # self.assertEqual(info.bext.originator_time, ffprobe_info['format']['tags']['creation_time']) + self.assertEqual(info.bext.time_reference, int(ffprobe_info['format']['tags']['time_reference'])) if 'coding_history' in ffprobe_info['format']['tags']: - self.assertEqual( info.bext.coding_history, ffprobe_info['format']['tags']['coding_history'] ) + self.assertEqual(info.bext.coding_history, ffprobe_info['format']['tags']['coding_history']) else: - self.assertEqual( info.bext.coding_history, '' ) + self.assertEqual(info.bext.coding_history, '') def test_ixml(self): - expected = {'A101_4.WAV': {'project' : 'BMH', 'scene': 'A101', 'take': '4', - 'tape': '18Y12M31', 'family_uid': 'USSDVGR1112089007124015008231000'}, - 'A101_3.WAV': {'project' : 'BMH', 'scene': 'A101', 'take': '3', - 'tape': '18Y12M31', 'family_uid': 'USSDVGR1112089007124014008228300'}, - 'A101_2.WAV': {'project' : 'BMH', 'scene': 'A101', 'take': '2', - 'tape': '18Y12M31', 'family_uid': 'USSDVGR1112089007124004008218600'}, - 'A101_1.WAV': {'project' : 'BMH', 'scene': 'A101', 'take': '1', - 'tape': '18Y12M31', 'family_uid': 'USSDVGR1112089007124001008206300'}, - } + expected = {'A101_4.WAV': {'project': 'BMH', 'scene': 'A101', 'take': '4', + 'tape': '18Y12M31', 'family_uid': 'USSDVGR1112089007124015008231000'}, + 'A101_3.WAV': {'project': 'BMH', 'scene': 'A101', 'take': '3', + 'tape': '18Y12M31', 'family_uid': 'USSDVGR1112089007124014008228300'}, + 'A101_2.WAV': {'project': 'BMH', 'scene': 'A101', 'take': '2', + 'tape': '18Y12M31', 'family_uid': 'USSDVGR1112089007124004008218600'}, + 'A101_1.WAV': {'project': 'BMH', 'scene': 'A101', 'take': '1', + 'tape': '18Y12M31', 'family_uid': 'USSDVGR1112089007124001008206300'}, + } for wav_file in all_files(): basename = os.path.basename(wav_file) @@ -82,15 +83,13 @@ class TestWaveInfo(TestCase): info = wavinfo.WavInfoReader(wav_file) e = expected[basename] - self.assertEqual( e['project'], info.ixml.project ) - self.assertEqual( e['scene'], info.ixml.scene ) - self.assertEqual( e['take'], info.ixml.take ) - self.assertEqual( e['tape'], info.ixml.tape ) - self.assertEqual( e['family_uid'], info.ixml.family_uid ) + self.assertEqual(e['project'], info.ixml.project) + self.assertEqual(e['scene'], info.ixml.scene) + self.assertEqual(e['take'], info.ixml.take) + self.assertEqual(e['tape'], info.ixml.tape) + self.assertEqual(e['family_uid'], info.ixml.family_uid) for track in info.ixml.track_list: self.assertIsNotNone(track.channel_index) if basename == 'A101_4.WAV' and track.channel_index == '1': - self.assertTrue(track.name == 'MKH516 A') - - + self.assertEqual(track.name, 'MKH516 A') diff --git a/tests/test_zoom_f8.py b/tests/test_zoom_f8.py index c6ad721..5b09dc0 100644 --- a/tests/test_zoom_f8.py +++ b/tests/test_zoom_f8.py @@ -8,5 +8,6 @@ from unittest import TestCase import wavinfo + class TestZoomF8(TestCase): pass diff --git a/tests/utils.py b/tests/utils.py index bc330f2..4ad7114 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -4,10 +4,11 @@ import subprocess from subprocess import PIPE import json -FFPROBE='ffprobe' +FFPROBE = 'ffprobe' + def ffprobe(path): - arguments = [ FFPROBE , "-of", "json" , "-show_format", "-show_streams", path ] + arguments = [FFPROBE, "-of", "json", "-show_format", "-show_streams", path] if int(sys.version[0]) < 3: process = subprocess.Popen(arguments, stdout=PIPE) process.wait() @@ -27,13 +28,9 @@ def ffprobe(path): return None - def all_files(): for dirpath, _, filenames in os.walk('tests/test_files'): for filename in filenames: _, ext = os.path.splitext(filename) if ext in ['.wav','.WAV']: yield os.path.join(dirpath, filename) - - -