From 9826de3526ed3b955911bd7cefb3a9a8e9114f37 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Thu, 20 Sep 2018 14:04:46 +0200 Subject: [PATCH] Add a test for zip ordering --- tests/test_deep_cleaning.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/tests/test_deep_cleaning.py b/tests/test_deep_cleaning.py index 8c6f257..3d1c8e1 100644 --- a/tests/test_deep_cleaning.py +++ b/tests/test_deep_cleaning.py @@ -70,3 +70,38 @@ class TestZipMetadata(unittest.TestCase): os.remove('./tests/data/clean.odt') os.remove('./tests/data/clean.cleaned.odt') + + +class TestZipOrder(unittest.TestCase): + def test_libreoffice(self): + shutil.copy('./tests/data/dirty.odt', './tests/data/clean.odt') + p = office.LibreOfficeParser('./tests/data/clean.odt') + + meta = p.get_meta() + self.assertIsNotNone(meta) + + is_unordered = False + with zipfile.ZipFile('./tests/data/clean.odt') as zin: + previous_name = '' + for item in zin.infolist(): + if previous_name == '': + previous_name = item.filename + continue + elif item.filename < previous_name: + is_unordered = True + break + self.assertTrue(is_unordered) + + ret = p.remove_all() + self.assertTrue(ret) + + with zipfile.ZipFile('./tests/data/clean.cleaned.odt') as zin: + previous_name = '' + for item in zin.infolist(): + if previous_name == '': + previous_name = item.filename + continue + self.assertGreaterEqual(item.filename, previous_name) + + os.remove('./tests/data/clean.odt') + os.remove('./tests/data/clean.cleaned.odt')