[pypy-commit] pypy py3k: Fix tests in module/imp, and add -A support to run most of them.

amauryfa noreply at buildbot.pypy.org
Mon Nov 19 23:51:36 CET 2012


Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: py3k
Changeset: r59005:150673184cc6
Date: 2012-11-19 21:16 +0100
http://bitbucket.org/pypy/pypy/changeset/150673184cc6/

Log:	Fix tests in module/imp, and add -A support to run most of them.

diff --git a/pypy/module/imp/test/test_app.py b/pypy/module/imp/test/test_app.py
--- a/pypy/module/imp/test/test_app.py
+++ b/pypy/module/imp/test/test_app.py
@@ -1,8 +1,6 @@
 from __future__ import with_statement
 from pypy.tool.udir import udir
 
-MARKER = 42
-
 class AppTestImpModule:
     spaceconfig = dict(usemodules=('imp',))
 
@@ -16,11 +14,10 @@
         cls.w_udir = cls.space.wrap(str(udir))
 
     def w__py_file(self):
-        fn = self.file_module
-        if fn.lower().endswith('c') or fn.lower().endswith('o'):
-            fn = fn[:-1]
-        assert fn.lower().endswith('.py')
-        return fn
+        f = open('@TEST.py', 'w')
+        f.write('MARKER = 42\n')
+        f.close()
+        return '@TEST.py'
 
     def w__pyc_file(self):
         import marshal, imp
diff --git a/pypy/module/imp/test/test_import.py b/pypy/module/imp/test/test_import.py
--- a/pypy/module/imp/test/test_import.py
+++ b/pypy/module/imp/test/test_import.py
@@ -149,16 +149,14 @@
     """)
 
 class AppTestImport:
-    spaceconfig = dict(usemodules=['itertools'])
-
     def setup_class(cls): # interpreter-level
         cls.w_runappdirect = cls.space.wrap(conftest.option.runappdirect)
-        cls.saved_modules = _setup(cls.space)
+        cls.w_saved_modules = _setup(cls.space)
         #XXX Compile class
 
         
     def teardown_class(cls): # interpreter-level
-        _teardown(cls.space, cls.saved_modules)
+        _teardown(cls.space, cls.w_saved_modules)
 
     def w_exec_(self, cmd, ns):
         exec(cmd, ns)
diff --git a/pypy/tool/pytest/apptest.py b/pypy/tool/pytest/apptest.py
--- a/pypy/tool/pytest/apptest.py
+++ b/pypy/tool/pytest/apptest.py
@@ -66,6 +66,16 @@
             defs.append(str(code))
             args = ','.join(repr(arg) for arg in args)
             defs.append("self.%s = anonymous(%s)\n" % (symbol, args))
+        elif isinstance(value, types.MethodType):
+            # "def w_method(self)"
+            code = py.code.Code(value)
+            defs.append(str(code.source()))
+            defs.append("type(self).%s = w_%s\n" % (symbol, symbol))
+        elif isinstance(value, types.ModuleType):
+            name = value.__name__
+            defs.append("import %s; self.%s = %s\n" % (name, symbol, name))
+        elif isinstance(value, (int, str)):
+            defs.append("self.%s = %r\n" % (symbol, value))
     source = py.code.Source(target_)[1:].deindent()
     pyfile = udir.join('src.py')
     source = helpers + '\n'.join(defs) + str(source)


More information about the pypy-commit mailing list