aboutsummaryrefslogtreecommitdiffstats
path: root/test/reader/preview/test_rawpy.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/reader/preview/test_rawpy.py')
-rw-r--r--test/reader/preview/test_rawpy.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/test/reader/preview/test_rawpy.py b/test/reader/preview/test_rawpy.py
new file mode 100644
index 0000000..11a6f9b
--- /dev/null
+++ b/test/reader/preview/test_rawpy.py
@@ -0,0 +1,54 @@
+
+# standard imports
+from functools import partial
+import importlib
+import os
+import unittest
+
+# external imports
+import PIL.Image
+
+# bsie imports
+from bsie.utils import errors
+
+# objects to test
+from bsie.reader.preview._rawpy import RawpyPreviewReader
+
+
+## code ##
+
+class TestRawpyPreviewReader(unittest.TestCase):
+ def setUp(self):
+ if __package__ is None or __package__ == '': # direct call or local discovery
+ importlib.import_module('load_nef', __package__).get()
+ else: # parent discovery
+ importlib.import_module('.load_nef', __package__).get()
+
+ def test_call(self):
+ rdr = RawpyPreviewReader()
+ # raises exception when image cannot be read
+ self.assertRaises(errors.ReaderError, rdr,
+ os.path.join(os.path.dirname(__file__), 'invalid.nef'))
+ # raises exception when image has invalid type
+ self.assertRaises(errors.UnsupportedFileFormatError, rdr,
+ os.path.join(os.path.dirname(__file__), 'invalid.jpg'))
+ 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.nef'))
+ self.assertIsInstance(gen, partial)
+ # generator produces an image
+ img = gen(10)
+ self.assertIsInstance(img, PIL.Image.Image)
+ self.assertEqual(img.size, (10, 7))
+ self.assertEqual(sum(band for pix in img.getdata() for band in pix), 15269)
+ # cleanup
+ img.close()
+
+
+## main ##
+
+if __name__ == '__main__':
+ unittest.main()
+
+## EOF ##