aboutsummaryrefslogtreecommitdiffstats
path: root/test/utils/test_loading.py
diff options
context:
space:
mode:
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 ##