[pypy-commit] pypy py3k: Add FunctionType.__globals__, and update some tests because "import new" fails with py3k.
amauryfa
noreply at buildbot.pypy.org
Wed Oct 12 01:45:37 CEST 2011
Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: py3k
Changeset: r47960:b9757b3532e9
Date: 2011-10-12 01:15 +0200
http://bitbucket.org/pypy/pypy/changeset/b9757b3532e9/
Log: Add FunctionType.__globals__, and update some tests because "import
new" fails with py3k.
diff --git a/pypy/interpreter/test/test_function.py b/pypy/interpreter/test/test_function.py
--- a/pypy/interpreter/test/test_function.py
+++ b/pypy/interpreter/test/test_function.py
@@ -34,6 +34,7 @@
assert f.__dict__ is f.func_dict
assert f.__code__ is f.func_code
assert f.__defaults__ is f.func_defaults
+ assert f.__globals__ is f.func_globals
assert hasattr(f, '__class__')
def test_classmethod(self):
@@ -438,16 +439,16 @@
class A(object):
def __call__(self, x):
return x
- import new
- im = new.instancemethod(A(), 3)
+ import types
+ im = types.MethodType(A(), 3)
assert im() == 3
def test_method_w_callable_call_function(self):
class A(object):
def __call__(self, x, y):
return x+y
- import new
- im = new.instancemethod(A(), 3)
+ import types
+ im = types.MethodType(A(), 3)
assert map(im, [4]) == [7]
def test_unbound_typecheck(self):
@@ -474,15 +475,15 @@
assert Fun[:2] == ('Fun', ())
def test_unbound_abstract_typecheck(self):
- import new
+ import types
def f(*args):
return args
- m = new.instancemethod(f, None, "foobar")
+ m = types.MethodType(f, None, "foobar")
raises(TypeError, m)
raises(TypeError, m, None)
raises(TypeError, m, "egg")
- m = new.instancemethod(f, None, (str, int)) # really obscure...
+ m = types.MethodType(f, None, (str, int)) # really obscure...
assert m(4) == (4,)
assert m("uh") == ("uh",)
raises(TypeError, m, [])
@@ -506,7 +507,7 @@
BSub1.__bases__ = (BBase,)
BSub2.__bases__ = (BBase,)
x = MyInst(BSub1)
- m = new.instancemethod(f, None, BSub1)
+ m = types.MethodType(f, None, BSub1)
assert m(x) == (x,)
raises(TypeError, m, MyInst(BBase))
raises(TypeError, m, MyInst(BSub2))
@@ -514,9 +515,9 @@
raises(TypeError, m, MyInst(42))
def test_invalid_creation(self):
- import new
+ import types
def f(): pass
- raises(TypeError, new.instancemethod, f, None)
+ raises(TypeError, types.MethodType, f, None)
def test_empty_arg_kwarg_call(self):
def f():
diff --git a/pypy/interpreter/typedef.py b/pypy/interpreter/typedef.py
--- a/pypy/interpreter/typedef.py
+++ b/pypy/interpreter/typedef.py
@@ -768,6 +768,7 @@
__name__ = getset_func_name,
__dict__ = getset_func_dict,
__defaults__ = getset_func_defaults,
+ __globals__ = interp_attrproperty_w('w_func_globals', cls=Function),
__module__ = getset___module__,
__weakref__ = make_weakref_descr(Function),
)
More information about the pypy-commit
mailing list