[pypy-svn] r4771 - in pypy/trunk/src/pypy/module: . test test/impsubdir test/impsubdir/pkg

pedronis at codespeak.net pedronis at codespeak.net
Mon May 31 18:09:35 CEST 2004


Author: pedronis
Date: Mon May 31 18:09:33 2004
New Revision: 4771

Modified:
   pypy/trunk/src/pypy/module/__builtin__interp.py
   pypy/trunk/src/pypy/module/test/impsubdir/a.py
   pypy/trunk/src/pypy/module/test/impsubdir/pkg/a.py
   pypy/trunk/src/pypy/module/test/test_import.py
Log:
factored out try_geattr
test for relative import


Modified: pypy/trunk/src/pypy/module/__builtin__interp.py
==============================================================================
--- pypy/trunk/src/pypy/module/__builtin__interp.py	(original)
+++ pypy/trunk/src/pypy/module/__builtin__interp.py	Mon May 31 18:09:33 2004
@@ -48,6 +48,14 @@
     else:
         return None
 
+def try_getattr(w_obj,w_name):
+    try:
+        return space.getattr(w_obj, w_name)
+    except OperationError, e:
+        if not e.match(space, space.w_AttributeError):
+            raise
+        return None
+
 def check_sys_modules(w_modulename):
     try:
         w_mod = space.getitem(space.sys.w_modules, w_modulename)
@@ -96,12 +104,8 @@
         if first is None:
             first = w_mod
         prefix.append(part)
-        try:
-            w_path = space.getattr(w_mod, w('__path__'))
-        except OperationError, e:
-            if not e.match(space, space.w_AttributeError):
-                raise
-            w_path = None
+        w_path = try_getattr(w_mod,w('__path__'))
+
 
     if w_fromlist is not None and space.is_true(w_fromlist):
         if w_path is not None:

Modified: pypy/trunk/src/pypy/module/test/impsubdir/a.py
==============================================================================
--- pypy/trunk/src/pypy/module/test/impsubdir/a.py	(original)
+++ pypy/trunk/src/pypy/module/test/impsubdir/a.py	Mon May 31 18:09:33 2004
@@ -1,2 +1,3 @@
 # a.py
 imamodule = 1
+inpackage = 0

Modified: pypy/trunk/src/pypy/module/test/impsubdir/pkg/a.py
==============================================================================
--- pypy/trunk/src/pypy/module/test/impsubdir/pkg/a.py	(original)
+++ pypy/trunk/src/pypy/module/test/impsubdir/pkg/a.py	Mon May 31 18:09:33 2004
@@ -1,2 +1,3 @@
 # a.py
 imamodule = 1
+inpackage = 1

Modified: pypy/trunk/src/pypy/module/test/test_import.py
==============================================================================
--- pypy/trunk/src/pypy/module/test/test_import.py	(original)
+++ pypy/trunk/src/pypy/module/test/test_import.py	Mon May 31 18:09:33 2004
@@ -74,5 +74,11 @@
         aa = sys.modules.get('pkg.a')
         self.assertEquals(a, aa)
 
+    def test_import_relative(self):
+        import sys
+        sys.path.append('impsubdir')
+        from pkg import relative_a
+        self.assertEquals(relative_a.a.inpackage,1)
+        
 if __name__ == '__main__':
     testit.main()



More information about the Pypy-commit mailing list