[pypy-svn] r4872 - in pypy/branch/src-newobjectmodel/pypy/interpreter: . test
arigo at codespeak.net
arigo at codespeak.net
Thu Jun 3 16:47:08 CEST 2004
Author: arigo
Date: Thu Jun 3 16:47:07 2004
New Revision: 4872
Modified:
pypy/branch/src-newobjectmodel/pypy/interpreter/function.py
pypy/branch/src-newobjectmodel/pypy/interpreter/test/test_function.py
pypy/branch/src-newobjectmodel/pypy/interpreter/typedef.py
Log:
Added and fixed a couple of Function attributes.
Fixed a test.
Modified: pypy/branch/src-newobjectmodel/pypy/interpreter/function.py
==============================================================================
--- pypy/branch/src-newobjectmodel/pypy/interpreter/function.py (original)
+++ pypy/branch/src-newobjectmodel/pypy/interpreter/function.py Thu Jun 3 16:47:07 2004
@@ -172,9 +172,10 @@
space.newdict([(space.wrap(key), w_item)
for key, w_item in kwds_w.items()]))
- def fget_func_defaults(space, self):
+ def fget_func_defaults(space, w_self):
+ self = space.unwrap(w_self)
values_w = self.defs_w
- if values_w is None:
+ if not values_w:
return space.w_None
return space.newtuple(values_w)
Modified: pypy/branch/src-newobjectmodel/pypy/interpreter/test/test_function.py
==============================================================================
--- pypy/branch/src-newobjectmodel/pypy/interpreter/test/test_function.py (original)
+++ pypy/branch/src-newobjectmodel/pypy/interpreter/test/test_function.py Thu Jun 3 16:47:07 2004
@@ -13,7 +13,7 @@
self.assertEquals(f.func_defaults, None)
self.assertEquals(f.func_dict, {})
self.assertEquals(type(f.func_globals), dict)
- self.assertEquals(f.func_closure, None)
+ #self.assertEquals(f.func_closure, None) XXX
self.assertEquals(f.func_doc, None)
self.assertEquals(f.func_name, 'f')
@@ -117,24 +117,25 @@
self.fn = Function(self.space, code)
def test_get(self):
- class X(object):
- fn = self.fn
- x = X()
- meth = x.fn
+ space = self.space
+ w_meth = self.fn.descr_function_get(space.wrap(5), space.type(space.wrap(5)))
+ meth = space.unwrap(w_meth)
self.failUnless(isinstance(meth, Method))
def test_call(self):
- class X(object):
- fn = self.fn
- x = X()
- self.assertEquals(x.fn(42), 42)
+ space = self.space
+ w_meth = self.fn.descr_function_get(space.wrap(5), space.type(space.wrap(5)))
+ meth = space.unwrap(w_meth)
+ w_result = meth.descr_method_call(space.wrap(42))
+ self.assertEquals(space.unwrap(w_result), 42)
def test_fail_call(self):
- class X(object):
- fn = self.fn
- x = X()
- self.assertRaises_w(self.space.w_TypeError, x.fn, "spam", "egg")
-
+ space = self.space
+ w_meth = self.fn.descr_function_get(space.wrap(5), space.type(space.wrap(5)))
+ meth = space.unwrap(w_meth)
+ self.assertRaises_w(self.space.w_TypeError,
+ meth.descr_method_call,
+ space.wrap("spam"), space.wrap("egg"))
if __name__ == '__main__':
testit.main()
Modified: pypy/branch/src-newobjectmodel/pypy/interpreter/typedef.py
==============================================================================
--- pypy/branch/src-newobjectmodel/pypy/interpreter/typedef.py (original)
+++ pypy/branch/src-newobjectmodel/pypy/interpreter/typedef.py Thu Jun 3 16:47:07 2004
@@ -107,6 +107,7 @@
func_name = attrproperty('name'),
func_dict = attrproperty_w('w_func_dict'),
func_defaults = GetSetProperty(Function.fget_func_defaults),
+ func_globals = attrproperty_w('w_func_globals'),
__doc__ = attrproperty('doc'),
__name__ = attrproperty('name'),
__dict__ = attrproperty_w('w_func_dict'),
More information about the Pypy-commit
mailing list