test_basic.py
1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
""" Basic tests for ooxml.py """
import unittest
import os
from os.path import join, splitext
from tests.test_utils import DATA_BASE_DIR
from oletools.thirdparty.olefile import isOleFile
from oletools import ooxml
class TestOOXML(unittest.TestCase):
""" Tests my cool new feature """
DO_DEBUG = False
def test_all_rough(self):
"""Checks all samples, expect either ole files or good ooxml output"""
acceptable = ooxml.DOCTYPE_EXCEL, ooxml.DOCTYPE_WORD, \
ooxml.DOCTYPE_POWERPOINT
# files that are neither OLE nor xml:
except_files = 'empty', 'text'
except_extns = '.xml', '.rtf', '.csv'
# analyse all files in data dir
for base_dir, _, files in os.walk(DATA_BASE_DIR):
for filename in files:
if filename in except_files:
if self.DO_DEBUG:
print('skip file: ' + filename)
continue
if splitext(filename)[1] in except_extns:
if self.DO_DEBUG:
print('skip extn: ' + filename)
continue
full_name = join(base_dir, filename)
if isOleFile(full_name):
if self.DO_DEBUG:
print('skip ole: ' + filename)
continue
try:
doctype = ooxml.get_type(full_name)
except Exception:
self.fail('Failed to get doctype of {0}'.format(filename))
self.assertTrue(doctype in acceptable,
msg='Doctype "{0}" for {1} not acceptable'
.format(doctype, full_name))
if self.DO_DEBUG:
print('ok: {0} --> {1}'.format(filename, doctype))
# just in case somebody calls this file as a script
if __name__ == '__main__':
unittest.main()