summaryrefslogtreecommitdiff
path: root/tests/test_libmat2.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_libmat2.py')
-rw-r--r--tests/test_libmat2.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/test_libmat2.py b/tests/test_libmat2.py
index 397855e..1d2a22a 100644
--- a/tests/test_libmat2.py
+++ b/tests/test_libmat2.py
@@ -4,6 +4,8 @@ import unittest
4import shutil 4import shutil
5import os 5import os
6import re 6import re
7import tarfile
8import tempfile
7import zipfile 9import zipfile
8 10
9from libmat2 import pdf, images, audio, office, parser_factory, torrent, harmless 11from libmat2 import pdf, images, audio, office, parser_factory, torrent, harmless
@@ -195,6 +197,19 @@ class TestGetMeta(unittest.TestCase):
195 self.assertEqual(meta['version'], '1.0') 197 self.assertEqual(meta['version'], '1.0')
196 self.assertEqual(meta['harmful data'], 'underline is cool') 198 self.assertEqual(meta['harmful data'], 'underline is cool')
197 199
200 def test_tar(self):
201 with tarfile.TarFile('./tests/data/dirty.tar', 'w') as tout:
202 tout.add('./tests/data/dirty.flac')
203 tout.add('./tests/data/dirty.docx')
204 tout.add('./tests/data/dirty.jpg')
205 p, mimetype = parser_factory.get_parser('./tests/data/dirty.tar')
206 self.assertEqual(mimetype, 'application/x-tar')
207 meta = p.get_meta()
208 self.assertEqual(meta['./tests/data/dirty.flac']['comments'], 'Thank you for using MAT !')
209 self.assertEqual(meta['./tests/data/dirty.docx']['word/media/image1.png']['Comment'], 'This is a comment, be careful!')
210 os.remove('./tests/data/dirty.tar')
211
212
198class TestRemovingThumbnails(unittest.TestCase): 213class TestRemovingThumbnails(unittest.TestCase):
199 def test_odt(self): 214 def test_odt(self):
200 shutil.copy('./tests/data/revision.odt', './tests/data/clean.odt') 215 shutil.copy('./tests/data/revision.odt', './tests/data/clean.odt')
@@ -702,3 +717,38 @@ class TestCleaning(unittest.TestCase):
702 os.remove('./tests/data/clean.css') 717 os.remove('./tests/data/clean.css')
703 os.remove('./tests/data/clean.cleaned.css') 718 os.remove('./tests/data/clean.cleaned.css')
704 os.remove('./tests/data/clean.cleaned.cleaned.css') 719 os.remove('./tests/data/clean.cleaned.cleaned.css')
720
721 def test_tar(self):
722 with tarfile.TarFile('./tests/data/dirty.tar', 'w') as zout:
723 zout.add('./tests/data/dirty.flac')
724 zout.add('./tests/data/dirty.docx')
725 zout.add('./tests/data/dirty.jpg')
726 p = archive.TarParser('./tests/data/dirty.tar')
727 meta = p.get_meta()
728 self.assertEqual(meta['./tests/data/dirty.docx']['word/media/image1.png']['Comment'], 'This is a comment, be careful!')
729
730 ret = p.remove_all()
731 self.assertTrue(ret)
732
733 p = archive.TarParser('./tests/data/dirty.cleaned.tar')
734 self.assertEqual(p.get_meta(), {})
735 self.assertTrue(p.remove_all())
736
737 tmp_dir = tempfile.mkdtemp()
738 with tarfile.open('./tests/data/dirty.cleaned.tar') as zout:
739 zout.extractall(path=tmp_dir)
740 zout.close()
741
742 number_of_files = 0
743 for root, _, fnames in os.walk(tmp_dir):
744 for f in fnames:
745 complete_path = os.path.join(root, f)
746 p, _ = parser_factory.get_parser(complete_path)
747 self.assertIsNotNone(p)
748 self.assertEqual(p.get_meta(), {})
749 number_of_files += 1
750 self.assertEqual(number_of_files, 3)
751
752 os.remove('./tests/data/dirty.tar')
753 os.remove('./tests/data/dirty.cleaned.tar')
754 os.remove('./tests/data/dirty.cleaned.cleaned.tar')