[pypy-svn] r10758 - in pypy/dist/pypy/module: builtin test test/impsubdir/pkg/pkg2
pedronis at codespeak.net
pedronis at codespeak.net
Sun Apr 17 02:07:50 CEST 2005
Author: pedronis
Date: Sun Apr 17 02:07:50 2005
New Revision: 10758
Added:
pypy/dist/pypy/module/test/impsubdir/pkg/pkg2/
pypy/dist/pypy/module/test/impsubdir/pkg/pkg2/__init__.py (contents, props changed)
pypy/dist/pypy/module/test/impsubdir/pkg/pkg2/a.py (contents, props changed)
pypy/dist/pypy/module/test/impsubdir/pkg/pkg2/b.py (contents, props changed)
Modified:
pypy/dist/pypy/module/builtin/importing.py
pypy/dist/pypy/module/test/test_import.py
Log:
fix failure behavior of import in case a package __path__ has been deleted; with test
Modified: pypy/dist/pypy/module/builtin/importing.py
==============================================================================
--- pypy/dist/pypy/module/builtin/importing.py (original)
+++ pypy/dist/pypy/module/builtin/importing.py Sun Apr 17 02:07:50 2005
@@ -156,19 +156,21 @@
w_mod = space.sys.getmodule(modulename)
if w_mod is not None:
return w_mod
- for path in space.unpackiterable(w_path):
- dir = os.path.join(space.str_w(path), partname)
- if os.path.isdir(dir):
- f = os.path.join(dir,'__init__.py')
+
+ if w_path is not None:
+ for path in space.unpackiterable(w_path):
+ dir = os.path.join(space.str_w(path), partname)
+ if os.path.isdir(dir):
+ f = os.path.join(dir,'__init__.py')
+ w_mod = try_import_mod(space, w_modulename, f, w_parent,
+ w(partname), pkgdir=dir)
+ if w_mod is not None:
+ return w_mod
+ f = os.path.join(space.str_w(path), partname + '.py')
w_mod = try_import_mod(space, w_modulename, f, w_parent,
- w(partname), pkgdir=dir)
+ w(partname))
if w_mod is not None:
return w_mod
- f = os.path.join(space.str_w(path), partname + '.py')
- w_mod = try_import_mod(space, w_modulename, f, w_parent,
- w(partname))
- if w_mod is not None:
- return w_mod
if tentative:
return None
Added: pypy/dist/pypy/module/test/impsubdir/pkg/pkg2/__init__.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/module/test/impsubdir/pkg/pkg2/__init__.py Sun Apr 17 02:07:50 2005
@@ -0,0 +1 @@
+# package
Added: pypy/dist/pypy/module/test/impsubdir/pkg/pkg2/a.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/module/test/impsubdir/pkg/pkg2/a.py Sun Apr 17 02:07:50 2005
@@ -0,0 +1 @@
+# a.py
Added: pypy/dist/pypy/module/test/impsubdir/pkg/pkg2/b.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/module/test/impsubdir/pkg/pkg2/b.py Sun Apr 17 02:07:50 2005
@@ -0,0 +1 @@
+# b.py
Modified: pypy/dist/pypy/module/test/test_import.py
==============================================================================
--- pypy/dist/pypy/module/test/test_import.py (original)
+++ pypy/dist/pypy/module/test/test_import.py Sun Apr 17 02:07:50 2005
@@ -144,3 +144,11 @@
def test_substituting_import(self):
from pkg_substituting import mod
assert mod.__name__ =='pkg_substituting.mod'
+
+ def test_proper_failure_on_killed__path__(self):
+ import pkg.pkg2.a
+ del pkg.pkg2.__path__
+ def imp_b():
+ import pkg.pkg2.b
+ raises(ImportError,imp_b)
+
More information about the Pypy-commit
mailing list