From 2271ee6f65ca559ca630407cf9459915371ecb52 Mon Sep 17 00:00:00 2001 From: hugovk Date: Fri, 11 Apr 2014 14:53:33 +0300 Subject: [PATCH] Add some simple tests for OleFileIO.py --- Tests/images/test-ole-file.doc | Bin 0 -> 22016 bytes Tests/test_olefileio.py | 101 +++++++++++++++++++++++++++++++++ Tests/tester.py | 28 +++++++++ 3 files changed, 129 insertions(+) create mode 100644 Tests/images/test-ole-file.doc create mode 100644 Tests/test_olefileio.py diff --git a/Tests/images/test-ole-file.doc b/Tests/images/test-ole-file.doc new file mode 100644 index 0000000000000000000000000000000000000000..07a1ff4e4dd41f919c482cecdb455526b4354418 GIT binary patch literal 22016 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 E0U#u=;Q#;t literal 0 HcmV?d00001 diff --git a/Tests/test_olefileio.py b/Tests/test_olefileio.py new file mode 100644 index 000000000..3cd581b2e --- /dev/null +++ b/Tests/test_olefileio.py @@ -0,0 +1,101 @@ +from __future__ import print_function +from tester import * + +import PIL.OleFileIO as OleFileIO + + +def test_isOleFile_false(): + # Arrange + non_ole_file = "Tests/images/flower.jpg" + + # Act + is_ole = OleFileIO.isOleFile(non_ole_file) + + # Assert + assert_false(is_ole) + + +def test_isOleFile_true(): + # Arrange + ole_file = "Tests/images/test-ole-file.doc" + + # Act + is_ole = OleFileIO.isOleFile(ole_file) + + # Assert + assert_true(is_ole) + + +def test_exists_worddocument(): + # Arrange + ole_file = "Tests/images/test-ole-file.doc" + ole = OleFileIO.OleFileIO(ole_file) + + # Act + exists = ole.exists('worddocument') + + # Assert + assert_true(exists) + + +def test_exists_no_vba_macros(): + # Arrange + ole_file = "Tests/images/test-ole-file.doc" + ole = OleFileIO.OleFileIO(ole_file) + + # Act + exists = ole.exists('macros/vba') + + # Assert + assert_false(exists) + + +def test_get_type(): + # Arrange + ole_file = "Tests/images/test-ole-file.doc" + ole = OleFileIO.OleFileIO(ole_file) + + # Act + type = ole.get_type('worddocument') + + # Assert + assert_equal(type, OleFileIO.STGTY_STREAM) + + +def test_get_size(): + # Arrange + ole_file = "Tests/images/test-ole-file.doc" + ole = OleFileIO.OleFileIO(ole_file) + + # Act + size = ole.get_size('worddocument') + + # Assert + assert_greater(size, 0) + + +def test_get_rootentry_name(): + # Arrange + ole_file = "Tests/images/test-ole-file.doc" + ole = OleFileIO.OleFileIO(ole_file) + + # Act + root = ole.get_rootentry_name() + + # Assert + assert_equal(root, "Root Entry") + + +def test_meta(): + # Arrange + ole_file = "Tests/images/test-ole-file.doc" + ole = OleFileIO.OleFileIO(ole_file) + + # Act + meta = ole.get_metadata() + + # Assert + assert_equal(meta.author, "Laurence Ipsum") + assert_equal(meta.num_pages, 1) + +# End of file diff --git a/Tests/tester.py b/Tests/tester.py index 5900a7f3a..41f27e4ff 100644 --- a/Tests/tester.py +++ b/Tests/tester.py @@ -94,6 +94,34 @@ def assert_deep_equal(a, b, msg=None): assert_equal(a, b, msg) +def assert_greater(a, b, msg=None): + if a > b: + success() + else: + failure(msg or "got %r, expected %r" % (a, b)) + + +def assert_greater_equal(a, b, msg=None): + if a >= b: + success() + else: + failure(msg or "got %r, expected %r" % (a, b)) + + +def assert_less(a, b, msg=None): + if a < b: + success() + else: + failure(msg or "got %r, expected %r" % (a, b)) + + +def assert_less_equal(a, b, msg=None): + if a <= b: + success() + else: + failure(msg or "got %r, expected %r" % (a, b)) + + def assert_match(v, pattern, msg=None): import re if re.match(pattern, v):