diff options
| author | jvoisin | 2018-09-20 14:04:46 +0200 |
|---|---|---|
| committer | jvoisin | 2018-09-20 14:04:46 +0200 |
| commit | 9826de3526ed3b955911bd7cefb3a9a8e9114f37 (patch) | |
| tree | 471635485b08aae2c7fde303b413b98882002771 | |
| parent | ab71c29a28da8a2ccb2d37e4175717415dc8741c (diff) | |
Add a test for zip ordering
| -rw-r--r-- | tests/test_deep_cleaning.py | 35 |
1 files changed, 35 insertions, 0 deletions
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): | |||
| 70 | 70 | ||
| 71 | os.remove('./tests/data/clean.odt') | 71 | os.remove('./tests/data/clean.odt') |
| 72 | os.remove('./tests/data/clean.cleaned.odt') | 72 | os.remove('./tests/data/clean.cleaned.odt') |
| 73 | |||
| 74 | |||
| 75 | class TestZipOrder(unittest.TestCase): | ||
| 76 | def test_libreoffice(self): | ||
| 77 | shutil.copy('./tests/data/dirty.odt', './tests/data/clean.odt') | ||
| 78 | p = office.LibreOfficeParser('./tests/data/clean.odt') | ||
| 79 | |||
| 80 | meta = p.get_meta() | ||
| 81 | self.assertIsNotNone(meta) | ||
| 82 | |||
| 83 | is_unordered = False | ||
| 84 | with zipfile.ZipFile('./tests/data/clean.odt') as zin: | ||
| 85 | previous_name = '' | ||
| 86 | for item in zin.infolist(): | ||
| 87 | if previous_name == '': | ||
| 88 | previous_name = item.filename | ||
| 89 | continue | ||
| 90 | elif item.filename < previous_name: | ||
| 91 | is_unordered = True | ||
| 92 | break | ||
| 93 | self.assertTrue(is_unordered) | ||
| 94 | |||
| 95 | ret = p.remove_all() | ||
| 96 | self.assertTrue(ret) | ||
| 97 | |||
| 98 | with zipfile.ZipFile('./tests/data/clean.cleaned.odt') as zin: | ||
| 99 | previous_name = '' | ||
| 100 | for item in zin.infolist(): | ||
| 101 | if previous_name == '': | ||
| 102 | previous_name = item.filename | ||
| 103 | continue | ||
| 104 | self.assertGreaterEqual(item.filename, previous_name) | ||
| 105 | |||
| 106 | os.remove('./tests/data/clean.odt') | ||
| 107 | os.remove('./tests/data/clean.cleaned.odt') | ||
