aboutsummaryrefslogtreecommitdiffstats
path: root/test/reader/image
diff options
context:
space:
mode:
Diffstat (limited to 'test/reader/image')
-rw-r--r--test/reader/image/__init__.py0
-rw-r--r--test/reader/image/load_nef.py28
-rw-r--r--test/reader/image/test_image.py54
-rw-r--r--test/reader/image/test_pillow.py44
-rw-r--r--test/reader/image/test_raw_image.py53
-rw-r--r--test/reader/image/testimage.jpgbin0 -> 518 bytes
6 files changed, 179 insertions, 0 deletions
diff --git a/test/reader/image/__init__.py b/test/reader/image/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/reader/image/__init__.py
diff --git a/test/reader/image/load_nef.py b/test/reader/image/load_nef.py
new file mode 100644
index 0000000..5ba0adc
--- /dev/null
+++ b/test/reader/image/load_nef.py
@@ -0,0 +1,28 @@
+"""
+
+Part of the bsie test suite.
+A copy of the license is provided with the project.
+Author: Matthias Baumgartner, 2022
+"""
+# standard imports
+import os
+
+# external imports
+import requests
+
+# constants
+IMAGE_URL = 'http://igsor.net/eik7AhvohghaeN5.nef'
+
+## code ##
+
+def get():
+ """Download a raw test image."""
+ target = os.path.join(os.path.dirname(__file__), 'testimage.nef')
+ if not os.path.exists(target):
+ with open(target, 'wb') as ofile:
+ ans = requests.get(IMAGE_URL)
+ ofile.write(ans.content)
+
+
+
+## EOF ##
diff --git a/test/reader/image/test_image.py b/test/reader/image/test_image.py
new file mode 100644
index 0000000..26f6a93
--- /dev/null
+++ b/test/reader/image/test_image.py
@@ -0,0 +1,54 @@
+"""
+
+Part of the bsie test suite.
+A copy of the license is provided with the project.
+Author: Matthias Baumgartner, 2022
+"""
+# standard imports
+import importlib
+import os
+import unittest
+
+# bsie imports
+from bsie.utils import errors
+
+# objects to test
+from bsie.reader.image import Image
+
+
+## code ##
+
+class TestImage(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_construct(self):
+ image = Image({})
+ self.assertIsInstance(image, Image)
+ self.assertEqual(len(image._children), 2)
+
+ def test_call(self):
+ image = Image({})
+ # call returns raw image
+ img = image(os.path.join(os.path.dirname(__file__), 'testimage.nef'))
+ self.assertEqual(img.size, (6016, 4016)) # FIXME: change when image was replaced
+ img.close()
+ # call returns jpeg image
+ img = image(os.path.join(os.path.dirname(__file__), 'testimage.jpg'))
+ self.assertEqual(img.size, (1, 1))
+ img.close()
+ # call raises error if file cannot be read
+ self.assertRaises(errors.ReaderError, image,
+ os.path.join(os.path.dirname(__file__), 'invalid.nef'))
+ self.assertRaises(errors.ReaderError, image,
+ os.path.join(os.path.dirname(__file__), 'invalid.jpg'))
+
+## main ##
+
+if __name__ == '__main__':
+ unittest.main()
+
+## EOF ##
diff --git a/test/reader/image/test_pillow.py b/test/reader/image/test_pillow.py
new file mode 100644
index 0000000..8abf5c1
--- /dev/null
+++ b/test/reader/image/test_pillow.py
@@ -0,0 +1,44 @@
+"""
+
+Part of the bsie test suite.
+A copy of the license is provided with the project.
+Author: Matthias Baumgartner, 2022
+"""
+# standard imports
+import os
+import unittest
+
+# external imports
+import PIL.Image
+
+# bsie imports
+from bsie.utils import errors
+
+# objects to test
+from bsie.reader.image._pillow import PillowImage
+
+
+## code ##
+
+class TestPillowImage(unittest.TestCase):
+ def test_call(self):
+ rdr = PillowImage()
+ # returns PIL image
+ img = rdr(os.path.join(os.path.dirname(__file__), 'testimage.jpg'))
+ self.assertEqual(img.size, (1, 1))
+ self.assertEqual(img.getdata().getpixel((0, 0)), (0, 0, 0))
+ img.close()
+ # raises exception when image cannot be read
+ self.assertRaises(errors.ReaderError, rdr,
+ os.path.join(os.path.dirname(__file__), 'invalid.jpg'))
+ # NOTE: PIL can actually read raw image files (returns the thumbnail)
+ #self.assertRaises(errors.ReaderError, rdr,
+ # os.path.join(os.path.dirname(__file__), 'testimage.nef'))
+
+
+## main ##
+
+if __name__ == '__main__':
+ unittest.main()
+
+## EOF ##
diff --git a/test/reader/image/test_raw_image.py b/test/reader/image/test_raw_image.py
new file mode 100644
index 0000000..ba21b5a
--- /dev/null
+++ b/test/reader/image/test_raw_image.py
@@ -0,0 +1,53 @@
+"""
+
+Part of the bsie test suite.
+A copy of the license is provided with the project.
+Author: Matthias Baumgartner, 2022
+"""
+# standard imports
+import importlib
+import os
+import unittest
+
+# external imports
+import PIL.Image
+
+# bsie imports
+from bsie.utils import errors
+
+# objects to test
+from bsie.reader.image._raw import RawImage
+
+
+## code ##
+
+class TestRawImage(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 = RawImage()
+ # returns PIL image
+ img = rdr(os.path.join(os.path.dirname(__file__), 'testimage.nef'))
+ self.assertEqual(img.size, (6016, 4016)) # FIXME: change when image was replaced
+ #self.assertEqual(img.size, (1, 1))
+ #self.assertEqual(img.getdata().getpixel((0, 0)), (0, 0, 0))
+ img.close()
+ # raises exception when image cannot be read
+ self.assertRaises(errors.ReaderError, rdr,
+ os.path.join(os.path.dirname(__file__), 'invalid.nef'))
+ self.assertRaises(errors.ReaderError, rdr,
+ os.path.join(os.path.dirname(__file__), 'testimage.jpg'))
+
+
+
+
+## main ##
+
+if __name__ == '__main__':
+ unittest.main()
+
+## EOF ##
diff --git a/test/reader/image/testimage.jpg b/test/reader/image/testimage.jpg
new file mode 100644
index 0000000..ea7af63
--- /dev/null
+++ b/test/reader/image/testimage.jpg
Binary files differ