tests: add test for including the ImportError message and traceback entry in the...
authordavid-sarah <david-sarah@jacaranda.org>
Sun, 10 Apr 2011 15:58:44 +0000 (08:58 -0700)
committerdavid-sarah <david-sarah@jacaranda.org>
Sun, 10 Apr 2011 15:58:44 +0000 (08:58 -0700)
src/allmydata/test/test_package_initialization.py [new file with mode: 0644]

diff --git a/src/allmydata/test/test_package_initialization.py b/src/allmydata/test/test_package_initialization.py
new file mode 100644 (file)
index 0000000..6ca7edf
--- /dev/null
@@ -0,0 +1,25 @@
+
+from twisted.trial import unittest
+
+import allmydata
+import mock
+
+real_import_func = __import__
+
+class T(unittest.TestCase):
+    @mock.patch('__builtin__.__import__')
+    def test_report_import_error(self, mockimport):
+        def raiseIE_from_this_particular_func(name, *args):
+            if name == "foolscap":
+                marker = "wheeeyo"
+                raise ImportError(marker + " foolscap cant be imported")
+            else:
+                return real_import_func(name, *args)
+
+        mockimport.side_effect = raiseIE_from_this_particular_func
+
+        vers_and_locs =  allmydata.get_package_versions_and_locations()
+        for (pkgname, stuff) in vers_and_locs:
+            if pkgname == 'foolscap':
+                self.failUnless('wheeeyo' in str(stuff[2]), stuff)
+                self.failUnless('raiseIE_from_this_particular_func' in str(stuff[2]), stuff)