[pypy-svn] r17346 - in pypy/dist/pypy/module/__builtin__/test: . impsubdir
arigo at codespeak.net
arigo at codespeak.net
Thu Sep 8 10:47:20 CEST 2005
Author: arigo
Date: Thu Sep 8 10:47:20 2005
New Revision: 17346
Removed:
pypy/dist/pypy/module/__builtin__/test/impsubdir/
Modified:
pypy/dist/pypy/module/__builtin__/test/test_import.py
Log:
Replaced the large directory substructure 'impsubdir' used in test_import
with a couple of pages of py.path code that creates the same structure
temporarily. Cleaner, especially because of this .pyc file that was
checked in.
Modified: pypy/dist/pypy/module/__builtin__/test/test_import.py
==============================================================================
--- pypy/dist/pypy/module/__builtin__/test/test_import.py (original)
+++ pypy/dist/pypy/module/__builtin__/test/test_import.py Thu Sep 8 10:47:20 2005
@@ -9,13 +9,71 @@
from pypy.module.__builtin__ import importing
-def get_import_path():
- j = os.path.join
- p = os.path.abspath(j(os.path.dirname(__file__), 'impsubdir'))
+def setuppkg(pkgname, **entries):
+ p = udir.join('impsubdir')
+ if pkgname:
+ p = p.join(*pkgname.split('.'))
+ p.ensure(dir=1)
+ f = p.join("__init__.py").open('w')
+ print >> f, "# package"
+ f.close()
+ for filename, content in entries.items():
+ filename += '.py'
+ f = p.join(filename).open('w')
+ print >> f, '#', filename
+ print >> f, content
+ f.close()
return p
+def setup_directory_structure(space):
+ root = setuppkg("",
+ a = "imamodule = 1\ninpackage = 0",
+ b = "imamodule = 1\ninpackage = 0",
+ ambig = "imamodule = 1",
+ )
+ root.ensure("notapackage", dir=1) # empty, no __init__.py
+ setuppkg("pkg",
+ a = "imamodule = 1\ninpackage = 1",
+ relative_a = "import a",
+ abs_b = "import b",
+ abs_x_y = "import x.y",
+ )
+ setuppkg("pkg.pkg1", a='')
+ setuppkg("pkg.pkg2", a='', b='')
+ setuppkg("pkg_r", inpkg = "import x.y")
+ setuppkg("pkg_r.x")
+ setuppkg("x", y='')
+ setuppkg("ambig", __init__ = "imapackage = 1")
+ setuppkg("pkg_relative_a",
+ __init__ = "import a",
+ a = "imamodule = 1\ninpackage = 1",
+ )
+ setuppkg("pkg_substituting",
+ __init__ = "import sys, pkg_substituted\n"
+ "sys.modules[__name__] = pkg_substituted")
+ setuppkg("pkg_substituted", mod='')
+
+ # create compiled/x.py and a corresponding pyc file
+ p = setuppkg("compiled", x = "x = 84")
+ w = space.wrap
+ w_modname = w("compiled.x")
+ filename = str(p.join("x.py"))
+ fd = os.open(filename, os.O_RDONLY, 0666)
+ osfile = importing.OsFileWrapper(fd)
+ try:
+ importing.load_source_module(space,
+ w_modname,
+ w(importing.Module(space, w_modname)),
+ filename,
+ osfile)
+ finally:
+ osfile.close()
+
+ return str(root)
+
+
def _setup(space):
- dn = get_import_path()
+ dn = setup_directory_structure(space)
return space.appexec([space.wrap(dn)], """
(dn):
import sys
More information about the Pypy-commit
mailing list