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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 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