diff options
author | Matthias Baumgartner <dev@igsor.net> | 2023-02-08 19:21:28 +0100 |
---|---|---|
committer | Matthias Baumgartner <dev@igsor.net> | 2023-02-08 19:21:28 +0100 |
commit | 482235a8229261fa905f73ce167982bca57ab3e6 (patch) | |
tree | dbe9d6623979c2b82eebe4abea96b097b5f609de /test/reader/preview/test_rawpy.py | |
parent | 9c26a5ef759b010d8cf4384b0515cc188b885d81 (diff) | |
download | bsie-482235a8229261fa905f73ce167982bca57ab3e6.tar.gz bsie-482235a8229261fa905f73ce167982bca57ab3e6.tar.bz2 bsie-482235a8229261fa905f73ce167982bca57ab3e6.zip |
preview reader
Diffstat (limited to 'test/reader/preview/test_rawpy.py')
-rw-r--r-- | test/reader/preview/test_rawpy.py | 59 |
1 files changed, 59 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..ed35f53 --- /dev/null +++ b/test/reader/preview/test_rawpy.py @@ -0,0 +1,59 @@ +""" + +Part of the bsie test suite. +A copy of the license is provided with the project. +Author: Matthias Baumgartner, 2022 +""" +# 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 ## |