[pypy-svn] r68334 - in pypy/branch/improve-kwd-args/pypy/module/_weakref: . test

pedronis at codespeak.net pedronis at codespeak.net
Mon Oct 12 15:41:03 CEST 2009


Author: pedronis
Date: Mon Oct 12 15:41:02 2009
New Revision: 68334

Modified:
   pypy/branch/improve-kwd-args/pypy/module/_weakref/interp__weakref.py
   pypy/branch/improve-kwd-args/pypy/module/_weakref/test/test_weakref.py
Log:
(pedronis, cfbolz): kill an unpack


Modified: pypy/branch/improve-kwd-args/pypy/module/_weakref/interp__weakref.py
==============================================================================
--- pypy/branch/improve-kwd-args/pypy/module/_weakref/interp__weakref.py	(original)
+++ pypy/branch/improve-kwd-args/pypy/module/_weakref/interp__weakref.py	Mon Oct 12 15:41:02 2009
@@ -143,12 +143,7 @@
         return w_obj
         
 
-def descr__new__weakref(space, w_subtype, w_obj, __args__):
-    args_w, kw_w = __args__.unpack()
-    if args_w:
-        w_callable = args_w[0]
-    else:
-        w_callable = space.w_None
+def descr__new__weakref(space, w_subtype, w_obj, w_callable=None):
     lifeline = w_obj.getweakref()
     if lifeline is None:
         lifeline = WeakrefLifeline(space)
@@ -189,7 +184,7 @@
 which is called with the weak reference as an argument when 'obj'
 is about to be finalized.""",
     __new__ = interp2app(descr__new__weakref,
-                         unwrap_spec=[ObjSpace, W_Root, W_Root, Arguments]),
+                         unwrap_spec=[ObjSpace, W_Root, W_Root, W_Root]),
     __eq__ = interp2app(descr__eq__,
                         unwrap_spec=[ObjSpace, W_Weakref, W_Root]),
     __ne__ = interp2app(descr__ne__,

Modified: pypy/branch/improve-kwd-args/pypy/module/_weakref/test/test_weakref.py
==============================================================================
--- pypy/branch/improve-kwd-args/pypy/module/_weakref/test/test_weakref.py	(original)
+++ pypy/branch/improve-kwd-args/pypy/module/_weakref/test/test_weakref.py	Mon Oct 12 15:41:02 2009
@@ -409,3 +409,11 @@
         a = A()
         assert _weakref.ref(a) == a
     
+    def test_strange_arguments(self):
+        import _weakref
+        class A(object):
+            pass
+
+        a = A()
+        raises(TypeError, _weakref.ref, a, lambda x: None, 3)
+        raises(TypeError, _weakref.ref, a, lambda x: None, b=3)



More information about the Pypy-commit mailing list