def test_all_parametred(self): for case in self.data: if 'ffmpeg' in case: try: video._get_ffmpeg_path() except RuntimeError: raise unittest.SkipTest print('[+] Testing %s' % case['name']) target = './tests/data/clean.' + case['name'] shutil.copy('./tests/data/dirty.' + case['name'], target) p1 = case['parser'](target) meta = p1.get_meta() for k, v in case['meta'].items(): if isinstance(v, dict): for _k, _v in v.items(): self.assertEqual(meta[k][_k], _v) else: self.assertEqual(meta[k], v) p1.lightweight_cleaning = True self.assertTrue(p1.remove_all()) p2 = case['parser'](p1.output_filename) self.assertEqual(p2.get_meta(), case['expected_meta']) self.assertTrue(p2.remove_all()) os.remove(target) os.remove(p1.output_filename) os.remove(p2.output_filename)
def test_avi_injection(self): try: video._get_ffmpeg_path() except RuntimeError: raise unittest.SkipTest shutil.copy('./tests/data/dirty.torrent', './tests/data/--output.avi') p = video.AVIParser('./tests/data/--output.avi') self.assertFalse(p.remove_all()) os.remove('./tests/data/--output.avi')
def test_ffmpeg_injection(self): try: video._get_ffmpeg_path() except RuntimeError: raise unittest.SkipTest shutil.copy('./tests/data/dirty.avi', './--output') p = video.AVIParser('--output') meta = p.get_meta() self.assertEqual(meta['Software'], 'MEncoder SVN-r33148-4.0.1') os.remove('--output')
def test_all_parametred(self): for case in self.data: if 'ffmpeg' in case: try: video._get_ffmpeg_path() except RuntimeError: raise unittest.SkipTest print('[+] Testing %s' % case['name']) target = './tests/data/clean.' + case['name'] shutil.copy('./tests/data/dirty.' + case['name'], target) p1 = case['parser'](target) for k, v in p1.get_meta().items(): if k not in case['meta']: continue if isinstance(v, dict): for _k, _v in v.items(): if _k in case['meta'][k]: self.assertEqual(_v, case['meta'][k][_k]) else: self.assertEqual(v, case['meta'][k]) p1.lightweight_cleaning = True self.assertTrue(p1.remove_all()) p2 = case['parser'](p1.output_filename) meta = p2.get_meta() if meta: for k, v in p2.get_meta().items(): self.assertIn( k, case['expected_meta'], '"%s" is not in "%s" (%s)' % (k, case['expected_meta'], case['name'])) self.assertIn(str(case['expected_meta'][k]), str(v)) self.assertTrue(p2.remove_all()) os.remove(target) os.remove(p1.output_filename) os.remove(p2.output_filename)
def test_wmv(self): try: video._get_ffmpeg_path() except RuntimeError: raise unittest.SkipTest shutil.copy('./tests/data/dirty.wmv', './tests/data/clean.wmv') p = video.WMVParser('./tests/data/clean.wmv') meta = p.get_meta() self.assertEqual(meta['EncodingSettings'], 'Lavf52.103.0') ret = p.remove_all() self.assertTrue(ret) p = video.WMVParser('./tests/data/clean.cleaned.wmv') self.assertNotIn('EncodingSettings', p.get_meta()) self.assertTrue(p.remove_all()) os.remove('./tests/data/clean.wmv') os.remove('./tests/data/clean.cleaned.wmv') os.remove('./tests/data/clean.cleaned.cleaned.wmv')
def test_mp4(self): try: video._get_ffmpeg_path() except RuntimeError: raise unittest.SkipTest shutil.copy('./tests/data/dirty.mp4', './tests/data/clean.mp4') p = video.MP4Parser('./tests/data/clean.mp4') meta = p.get_meta() self.assertEqual(meta['Encoder'], 'HandBrake 0.9.4 2009112300') ret = p.remove_all() self.assertTrue(ret) p = video.MP4Parser('./tests/data/clean.cleaned.mp4') self.assertNotIn('Encoder', p.get_meta()) self.assertTrue(p.remove_all()) os.remove('./tests/data/clean.mp4') os.remove('./tests/data/clean.cleaned.mp4') os.remove('./tests/data/clean.cleaned.cleaned.mp4')
def test_avi(self): try: video._get_ffmpeg_path() except RuntimeError: raise unittest.SkipTest shutil.copy('./tests/data/dirty.avi', './tests/data/clean.avi') p = video.AVIParser('./tests/data/clean.avi') meta = p.get_meta() self.assertEqual(meta['Software'], 'MEncoder SVN-r33148-4.0.1') ret = p.remove_all() self.assertTrue(ret) p = video.AVIParser('./tests/data/clean.cleaned.avi') self.assertEqual(p.get_meta(), {}) self.assertTrue(p.remove_all()) os.remove('./tests/data/clean.avi') os.remove('./tests/data/clean.cleaned.avi') os.remove('./tests/data/clean.cleaned.cleaned.avi')