aboutsummaryrefslogtreecommitdiffstats
path: root/test/reader/preview/test_pillow.py
diff options
context:
space:
mode:
authorMatthias Baumgartner <dev@igsor.net>2023-03-05 19:22:58 +0100
committerMatthias Baumgartner <dev@igsor.net>2023-03-05 19:22:58 +0100
commita35b33f4f1ddcf6f1bb8ab0f41b87bf2b847f11d (patch)
treefb220da28bb7248ebf37ce09af5de88f2c1aaad4 /test/reader/preview/test_pillow.py
parent7582c280ad5324a2f0427999911c7e7abc14a6ab (diff)
parentaf81318ae9311fd0b0e16949cef3cfaf7996970b (diff)
downloadbsie-main.tar.gz
bsie-main.tar.bz2
bsie-main.zip
Merge branch 'develop'HEADv0.23.03releasemain
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 ##