示例#1
0
文件: test_libmat2.py 项目: tpet/mat2
    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)
示例#2
0
    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')
示例#3
0
文件: test_libmat2.py 项目: tpet/mat2
    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')
示例#4
0
    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)
示例#5
0
    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')
示例#6
0
    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')
示例#7
0
    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')