[pypy-commit] pypy default: Fix checkmodule.py for almost all modules
amauryfa
noreply at buildbot.pypy.org
Sat Jan 7 14:51:53 CET 2012
Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch:
Changeset: r51115:e8a394c064fd
Date: 2012-01-07 13:08 +0100
http://bitbucket.org/pypy/pypy/changeset/e8a394c064fd/
Log: Fix checkmodule.py for almost all modules
diff --git a/pypy/interpreter/baseobjspace.py b/pypy/interpreter/baseobjspace.py
--- a/pypy/interpreter/baseobjspace.py
+++ b/pypy/interpreter/baseobjspace.py
@@ -1591,12 +1591,15 @@
'ArithmeticError',
'AssertionError',
'AttributeError',
+ 'BaseException',
+ 'DeprecationWarning',
'EOFError',
'EnvironmentError',
'Exception',
'FloatingPointError',
'IOError',
'ImportError',
+ 'ImportWarning',
'IndentationError',
'IndexError',
'KeyError',
@@ -1617,7 +1620,10 @@
'TabError',
'TypeError',
'UnboundLocalError',
+ 'UnicodeDecodeError',
'UnicodeError',
+ 'UnicodeEncodeError',
+ 'UnicodeTranslateError',
'ValueError',
'ZeroDivisionError',
'UnicodeEncodeError',
diff --git a/pypy/module/sys/__init__.py b/pypy/module/sys/__init__.py
--- a/pypy/module/sys/__init__.py
+++ b/pypy/module/sys/__init__.py
@@ -42,7 +42,7 @@
'argv' : 'state.get(space).w_argv',
'py3kwarning' : 'space.w_False',
'warnoptions' : 'state.get(space).w_warnoptions',
- 'builtin_module_names' : 'state.w_None',
+ 'builtin_module_names' : 'space.w_None',
'pypy_getudir' : 'state.pypy_getudir', # not translated
'pypy_initial_path' : 'state.pypy_initial_path',
diff --git a/pypy/objspace/fake/checkmodule.py b/pypy/objspace/fake/checkmodule.py
--- a/pypy/objspace/fake/checkmodule.py
+++ b/pypy/objspace/fake/checkmodule.py
@@ -1,8 +1,10 @@
from pypy.objspace.fake.objspace import FakeObjSpace, W_Root
+from pypy.config.pypyoption import get_pypy_config
def checkmodule(modname):
- space = FakeObjSpace()
+ config = get_pypy_config(translating=True)
+ space = FakeObjSpace(config)
mod = __import__('pypy.module.%s' % modname, None, None, ['__doc__'])
# force computation and record what we wrap
module = mod.Module(space, W_Root())
diff --git a/pypy/objspace/fake/objspace.py b/pypy/objspace/fake/objspace.py
--- a/pypy/objspace/fake/objspace.py
+++ b/pypy/objspace/fake/objspace.py
@@ -93,9 +93,9 @@
class FakeObjSpace(ObjSpace):
- def __init__(self):
+ def __init__(self, config=None):
self._seen_extras = []
- ObjSpace.__init__(self)
+ ObjSpace.__init__(self, config=config)
def float_w(self, w_obj):
is_root(w_obj)
@@ -135,6 +135,9 @@
def newfloat(self, x):
return w_some_obj()
+ def newcomplex(self, x, y):
+ return w_some_obj()
+
def marshal_w(self, w_obj):
"NOT_RPYTHON"
raise NotImplementedError
@@ -215,6 +218,10 @@
expected_length = 3
return [w_some_obj()] * expected_length
+ def unpackcomplex(self, w_complex):
+ is_root(w_complex)
+ return 1.1, 2.2
+
def allocate_instance(self, cls, w_subtype):
is_root(w_subtype)
return instantiate(cls)
@@ -232,6 +239,11 @@
def exec_(self, *args, **kwds):
pass
+ def createexecutioncontext(self):
+ ec = ObjSpace.createexecutioncontext(self)
+ ec._py_repr = None
+ return ec
+
# ----------
def translates(self, func=None, argtypes=None, **kwds):
@@ -267,18 +279,21 @@
ObjSpace.ExceptionTable +
['int', 'str', 'float', 'long', 'tuple', 'list',
'dict', 'unicode', 'complex', 'slice', 'bool',
- 'type', 'basestring']):
+ 'type', 'basestring', 'object']):
setattr(FakeObjSpace, 'w_' + name, w_some_obj())
#
for (name, _, arity, _) in ObjSpace.MethodTable:
args = ['w_%d' % i for i in range(arity)]
+ params = args[:]
d = {'is_root': is_root,
'w_some_obj': w_some_obj}
+ if name in ('get',):
+ params[-1] += '=None'
exec compile2("""\
def meth(self, %s):
%s
return w_some_obj()
- """ % (', '.join(args),
+ """ % (', '.join(params),
'; '.join(['is_root(%s)' % arg for arg in args]))) in d
meth = func_with_new_name(d['meth'], name)
setattr(FakeObjSpace, name, meth)
@@ -301,9 +316,12 @@
pass
FakeObjSpace.default_compiler = FakeCompiler()
-class FakeModule(object):
+class FakeModule(Wrappable):
+ def __init__(self):
+ self.w_dict = w_some_obj()
def get(self, name):
name + "xx" # check that it's a string
return w_some_obj()
FakeObjSpace.sys = FakeModule()
FakeObjSpace.sys.filesystemencoding = 'foobar'
+FakeObjSpace.builtin = FakeModule()
diff --git a/pypy/objspace/fake/test/test_objspace.py b/pypy/objspace/fake/test/test_objspace.py
--- a/pypy/objspace/fake/test/test_objspace.py
+++ b/pypy/objspace/fake/test/test_objspace.py
@@ -40,7 +40,7 @@
def test_constants(self):
space = self.space
space.translates(lambda: (space.w_None, space.w_True, space.w_False,
- space.w_int, space.w_str,
+ space.w_int, space.w_str, space.w_object,
space.w_TypeError))
def test_wrap(self):
@@ -72,3 +72,9 @@
def test_newlist(self):
self.space.newlist([W_Root(), W_Root()])
+
+ def test_default_values(self):
+ # the __get__ method takes either 2 or 3 arguments
+ space = self.space
+ space.translates(lambda: (space.get(W_Root(), W_Root()),
+ space.get(W_Root(), W_Root(), W_Root())))
More information about the pypy-commit
mailing list