aboutsummaryrefslogtreecommitdiffstats
path: root/test/reader/preview/test_pillow.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/reader/preview/test_pillow.py')
-rw-r--r--test/reader/preview/test_pillow.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/test/reader/preview/test_pillow.py b/test/reader/preview/test_pillow.py
new file mode 100644
index 0000000..20f08ec
--- /dev/null
+++ b/test/reader/preview/test_pillow.py
@@ -0,0 +1,49 @@
+
+# standard imports
+from functools import partial
+import os
+import unittest
+
+# external imports
+import PIL.Image
+
+# bsie imports
+from bsie.utils import errors
+
+# objects to test
+from bsie.reader.preview._pillow import PillowPreviewReader
+
+
+## code ##
+
+class TestPillowPreviewReader(unittest.TestCase):
+ def test_call(self):
+ rdr = PillowPreviewReader()
+ # raises exception when image cannot be read
+ self.assertRaises(errors.UnsupportedFileFormatError, rdr,
+ os.path.join(os.path.dirname(__file__), 'invalid.jpg'))
+ # raises exception when image cannot be read
+ self.assertRaises(errors.ReaderError, rdr,
+ os.path.join(os.path.dirname(__file__), 'inexistent.jpg'))
+ # raises exception when image has invalid type
+ self.assertRaises(errors.UnsupportedFileFormatError, rdr,
+ os.path.join(os.path.dirname(__file__), 'invalid.foo'))
+
+ # proper file produces a generator
+ gen = rdr(os.path.join(os.path.dirname(__file__), 'testimage.jpg'))
+ self.assertIsInstance(gen, partial)
+ # generator produces an image
+ img = gen(10)
+ self.assertIsInstance(img, PIL.Image.Image)
+ self.assertEqual(img.size, (10, 10))
+ self.assertEqual(sum(band for pix in img.getdata() for band in pix), 0)
+ # cleanup
+ img.close()
+
+
+## main ##
+
+if __name__ == '__main__':
+ unittest.main()
+
+## EOF ##