From 80fc4ffb40ea425e14697082e4b7e6a7cf0b5583 Mon Sep 17 00:00:00 2001 From: jvoisin <julien.voisin@dustri.org> Date: Sun, 1 Jul 2018 17:29:05 +0200 Subject: [PATCH] Remove the thumbnails from libreoffice files --- libmat2/office.py | 1 + tests/data/revision.odt | Bin 0 -> 14458 bytes tests/test_libmat2.py | 17 +++++++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 tests/data/revision.odt diff --git a/libmat2/office.py b/libmat2/office.py index e813fae..34ae7a2 100644 --- a/libmat2/office.py +++ b/libmat2/office.py @@ -146,6 +146,7 @@ class LibreOfficeParser(ArchiveBasedAbstractParser): files_to_omit = set(map(re.compile, { # type: ignore '^meta\.xml$', '^Configurations2/', + '^Thumbnails/', })) def get_meta(self) -> Dict[str, str]: diff --git a/tests/data/revision.odt b/tests/data/revision.odt new file mode 100644 index 0000000000000000000000000000000000000000..d3b209b805f7a9064d476679360b322c305e34ed GIT binary patch literal 14458 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 NO#{FY$N6;izW^kyZTA2G literal 0 HcmV?d00001 diff --git a/tests/test_libmat2.py b/tests/test_libmat2.py index b34e7a4..3ea044f 100644 --- a/tests/test_libmat2.py +++ b/tests/test_libmat2.py @@ -105,6 +105,23 @@ class TestGetMeta(unittest.TestCase): self.assertEqual(meta['meta:generator'], 'LibreOffice/3.3$Unix LibreOffice_project/330m19$Build-202') +class TestRemovingThumbnails(unittest.TestCase): + def test_odt(self): + shutil.copy('./tests/data/revision.odt', './tests/data/clean.odt') + + zipin = zipfile.ZipFile(os.path.abspath('./tests/data/clean.odt')) + self.assertIn('Thumbnails/thumbnail.png', zipin.namelist()) + zipin.close() + + p = office.LibreOfficeParser('./tests/data/clean.odt') + self.assertTrue(p.remove_all()) + + zipin = zipfile.ZipFile(os.path.abspath('./tests/data/clean.cleaned.odt')) + self.assertNotIn('Thumbnails/thumbnail.png', zipin.namelist()) + zipin.close() + + os.remove('./tests/data/clean.cleaned.odt') + class TestDeepCleaning(unittest.TestCase): def __check_deep_meta(self, p): tempdir = tempfile.mkdtemp() -- GitLab