Commit 83389a63 authored by jvoisin's avatar jvoisin

Test mat2's reliability wrt. corrupted video files

parent e70ea811
Pipeline #19862 failed with stages
in 4 minutes and 38 seconds
......@@ -43,9 +43,8 @@ class AVIParser(exiftool.ExiftoolParser):
try:
subprocess.check_call(cmd)
except subprocess.CalledProcessError: # pragma: no cover
except subprocess.CalledProcessError:
return False
return True
......
......@@ -5,7 +5,8 @@ import shutil
import os
import logging
from libmat2 import pdf, images, audio, office, parser_factory, torrent, harmless
from libmat2 import pdf, images, audio, office, parser_factory, torrent
from libmat2 import harmless, video
# No need to logging messages, should something go wrong,
# the testsuite _will_ fail.
......@@ -192,3 +193,9 @@ class TestCorruptedFiles(unittest.TestCase):
with self.assertRaises(ValueError):
images.JPGParser('./tests/data/clean.jpg')
os.remove('./tests/data/clean.jpg')
def test_avi(self):
shutil.copy('./tests/data/dirty.torrent', './tests/data/clean.avi')
p = video.AVIParser('./tests/data/clean.avi')
self.assertFalse(p.remove_all())
os.remove('./tests/data/clean.avi')
......@@ -477,16 +477,18 @@ class TestCleaning(unittest.TestCase):
os.remove('./tests/data/clean.cleaned.cleaned.txt')
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')
try:
ret = p.remove_all()
except RuntimeError:
return # this happens if ffmepg is not installed
ret = p.remove_all()
self.assertTrue(ret)
p = video.AVIParser('./tests/data/clean.cleaned.avi')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment