[pypy-svn] r75106 - in pypy/trunk/pypy/module/imp: . test

arigo at codespeak.net arigo at codespeak.net
Fri Jun 4 15:48:21 CEST 2010


Author: arigo
Date: Fri Jun  4 15:48:20 2010
New Revision: 75106

Modified:
   pypy/trunk/pypy/module/imp/importing.py
   pypy/trunk/pypy/module/imp/test/test_import.py
Log:
Test and fix.


Modified: pypy/trunk/pypy/module/imp/importing.py
==============================================================================
--- pypy/trunk/pypy/module/imp/importing.py	(original)
+++ pypy/trunk/pypy/module/imp/importing.py	Fri Jun  4 15:48:20 2010
@@ -145,7 +145,7 @@
         msg = "Attempted relative import in non-package"
         raise OperationError(space.w_ValueError, w(msg))
     w_mod = absolute_import_try(space, modulename, 0, fromlist_w)
-    if w_mod is None and not space.is_w(w_mod, space.w_None):
+    if w_mod is None or space.is_w(w_mod, space.w_None):
         w_mod = absolute_import(space, modulename, 0, fromlist_w, tentative=0)
     if rel_modulename is not None:
         space.setitem(space.sys.get('modules'), w(rel_modulename), space.w_None)

Modified: pypy/trunk/pypy/module/imp/test/test_import.py
==============================================================================
--- pypy/trunk/pypy/module/imp/test/test_import.py	(original)
+++ pypy/trunk/pypy/module/imp/test/test_import.py	Fri Jun  4 15:48:20 2010
@@ -457,6 +457,16 @@
     def test_reload_infinite(self):
         import infinite_reload
 
+    def test_explicitly_missing(self):
+        import sys
+        sys.modules['foobarbazmod'] = None
+        try:
+            import foobarbazmod
+            assert False, "should have failed, got instead %r" % (
+                foobarbazmod,)
+        except ImportError:
+            pass
+
 def _getlong(data):
     x = marshal.dumps(data)
     return x[-4:]



More information about the Pypy-commit mailing list