aboutsummaryrefslogtreecommitdiffstats
path: root/test/utils/test_loading.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/utils/test_loading.py
parent7582c280ad5324a2f0427999911c7e7abc14a6ab (diff)
parentaf81318ae9311fd0b0e16949cef3cfaf7996970b (diff)
downloadbsie-0.23.03.tar.gz
bsie-0.23.03.tar.bz2
bsie-0.23.03.zip
Merge branch 'develop'HEADv0.23.03releasemain
Diffstat (limited to 'test/utils/test_loading.py')
-rw-r--r--test/utils/test_loading.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/utils/test_loading.py b/test/utils/test_loading.py
new file mode 100644
index 0000000..b8773ab
--- /dev/null
+++ b/test/utils/test_loading.py
@@ -0,0 +1,43 @@
+
+# standard imports
+import unittest
+
+# bsie imports
+from bsie.utils import errors
+
+# objects to test
+from bsie.utils.loading import safe_load, unpack_qualified_name
+
+
+## code ##
+
+class TestUtils(unittest.TestCase):
+ def test_safe_load(self):
+ # invalid module
+ self.assertRaises(errors.LoaderError, safe_load, 'dBGHMSAYOoKeKMpywDoKZQycENFPvN', 'foobar')
+ self.assertRaises(errors.LoaderError, safe_load, 'dBGHMSAYOoKeKMpywDoKZQycENFPvN.bar', 'foobar')
+ # partially valid module
+ self.assertRaises(errors.LoaderError, safe_load, 'os.foo', 'foobar')
+ # invalid class
+ self.assertRaises(errors.LoaderError, safe_load, 'os.path', 'foo')
+ # valid module and class
+ cls = safe_load('collections.abc', 'Container')
+ import collections.abc
+ self.assertEqual(cls, collections.abc.Container)
+
+ def test_unpack_qualified_name(self):
+ self.assertRaises(TypeError, unpack_qualified_name, 123)
+ self.assertRaises(TypeError, unpack_qualified_name, None)
+ self.assertRaises(ValueError, unpack_qualified_name, '')
+ self.assertRaises(ValueError, unpack_qualified_name, 'path')
+ self.assertRaises(ValueError, unpack_qualified_name, '.Path')
+ self.assertEqual(unpack_qualified_name('path.Path'), ('path', 'Path'))
+ self.assertEqual(unpack_qualified_name('path.foo.bar.Path'), ('path.foo.bar', 'Path'))
+
+
+## main ##
+
+if __name__ == '__main__':
+ unittest.main()
+
+## EOF ##