aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMatthias Baumgartner <dev@igsor.net>2023-03-02 08:58:29 +0100
committerMatthias Baumgartner <dev@igsor.net>2023-03-02 08:58:29 +0100
commitba6329bbe14c832d42773dee2fe30bd7669ca255 (patch)
tree4cd2771d95adaba0663fd7879b1666ebd3ef3cb9 /test
parent70d77819a84c73292825b81f952e162bb30753d7 (diff)
downloadbsie-ba6329bbe14c832d42773dee2fe30bd7669ca255.tar.gz
bsie-ba6329bbe14c832d42773dee2fe30bd7669ca255.tar.bz2
bsie-ba6329bbe14c832d42773dee2fe30bd7669ca255.zip
various minor fixes
Diffstat (limited to 'test')
-rw-r--r--test/apps/test_main.py57
-rw-r--r--test/extractor/image/test_photometrics.py10
-rw-r--r--test/reader/preview/test_pg.py1
3 files changed, 68 insertions, 0 deletions
diff --git a/test/apps/test_main.py b/test/apps/test_main.py
new file mode 100644
index 0000000..a1d8a49
--- /dev/null
+++ b/test/apps/test_main.py
@@ -0,0 +1,57 @@
+
+# standard imports
+import contextlib
+import io
+import json
+import os
+import tempfile
+import unittest
+import yaml
+
+# objects to test
+from bsie.apps import main
+
+
+## code ##
+
+class TestMain(unittest.TestCase):
+ def setUp(self):
+ config = {
+ 'ReaderBuilder': {},
+ 'ExtractorBuilder': [
+ {'bsie.extractor.generic.stat.Stat': {}},
+ {'bsie.extractor.generic.path.Path': {}},
+ ]
+ }
+ # create config file
+ _, self.config_path = tempfile.mkstemp(prefix='bsie-test-', suffix='.yaml')
+ with open(self.config_path, 'wt') as cfile:
+ yaml.dump(config, cfile)
+
+ def tearDown(self):
+ if os.path.exists(self.config_path):
+ os.unlink(self.config_path)
+
+ def test_main(self):
+ # must at least pass an app
+ with contextlib.redirect_stderr(io.StringIO()):
+ self.assertRaises(SystemExit, main, [])
+ # app takes over
+ with contextlib.redirect_stderr(io.StringIO()):
+ self.assertRaises(SystemExit, main, ['info'])
+ outbuf = io.StringIO()
+ with contextlib.redirect_stdout(outbuf):
+ main(['info', '--config', self.config_path, 'predicates'])
+ self.assertEqual(set(outbuf.getvalue().strip().split('\n')), {
+ 'http://bsfs.ai/schema/Entity#filename',
+ 'http://bsfs.ai/schema/Entity#filesize',
+ 'http://bsfs.ai/schema/Predicate',
+ })
+
+
+## main ##
+
+if __name__ == '__main__':
+ unittest.main()
+
+## EOF ##
diff --git a/test/extractor/image/test_photometrics.py b/test/extractor/image/test_photometrics.py
index 0e0261b..fb219e2 100644
--- a/test/extractor/image/test_photometrics.py
+++ b/test/extractor/image/test_photometrics.py
@@ -95,6 +95,16 @@ class TestExif(unittest.TestCase):
self.assertSetEqual(set(ext.extract(node, content, {ext.schema.predicate(ns.bse.longitude)})),
{(node, ext.schema.predicate(ns.bse.longitude), 7.875)})
+ # check orientation label
+ self.assertSetEqual(set(ext.extract(
+ node, {
+ 'Exif.Photo.PixelXDimension': '4288',
+ 'Exif.Photo.PixelYDimension': '2848',
+ 'Exif.Image.Orientation': '5',
+ },
+ {ext.schema.predicate(ns.bse.orientation_label)})),
+ {(node, ext.schema.predicate(ns.bse.orientation_label), 'portrait')})
+
# can pass multiple principals
self.assertSetEqual(set(ext.extract(node, content, {
ext.schema.predicate(ns.bse.exposure),
diff --git a/test/reader/preview/test_pg.py b/test/reader/preview/test_pg.py
index 381344f..30095c5 100644
--- a/test/reader/preview/test_pg.py
+++ b/test/reader/preview/test_pg.py
@@ -52,6 +52,7 @@ class TestPreviewGeneratorReader(unittest.TestCase):
self.assertEqual(sum(img.getdata()), 20258)
# cleanup
img.close()
+ del rdr
# can define a cache dir
pg_dir = tempfile.mkdtemp(prefix='bsie-test')