[pypy-svn] r40953 - in pypy/dist/pypy/lib: . test2
fijal at codespeak.net
fijal at codespeak.net
Wed Mar 21 17:21:37 CET 2007
Author: fijal
Date: Wed Mar 21 17:21:35 2007
New Revision: 40953
Modified:
pypy/dist/pypy/lib/test2/test_tputil.py
pypy/dist/pypy/lib/tputil.py
Log:
Fix to tputil and a test for that
Modified: pypy/dist/pypy/lib/test2/test_tputil.py
==============================================================================
--- pypy/dist/pypy/lib/test2/test_tputil.py (original)
+++ pypy/dist/pypy/lib/test2/test_tputil.py Wed Mar 21 17:21:35 2007
@@ -39,3 +39,15 @@
assert r1[0].args[0] == '__getattribute__'
assert r1[1].opname == '__getattribute__'
assert r1[1].args[0] == 'append'
+
+ def test_proxy_inplace_add(self):
+ r = []
+ from tputil import make_instance_proxy
+ def func1(invocation):
+ r.append(invocation)
+ return invocation.perform()
+
+ l2 = make_instance_proxy([], func1)
+ l = l2
+ l += [3]
+ assert l is l2
Modified: pypy/dist/pypy/lib/tputil.py
==============================================================================
--- pypy/dist/pypy/lib/tputil.py (original)
+++ pypy/dist/pypy/lib/tputil.py Wed Mar 21 17:21:35 2007
@@ -34,6 +34,8 @@
if (isinstance(res, MethodType) and
res.im_self is self.realobj):
res = MethodType(res.im_func, self.proxyobj, res.im_class)
+ if res is self.realobj:
+ return self.proxyobj
return res
def __repr__(self):
More information about the Pypy-commit
mailing list