[pypy-svn] r76851 - in pypy/branch/better-map-instances/pypy/module/__builtin__: . test
cfbolz at codespeak.net
cfbolz at codespeak.net
Fri Sep 3 12:59:45 CEST 2010
Author: cfbolz
Date: Fri Sep 3 12:59:42 2010
New Revision: 76851
Modified:
pypy/branch/better-map-instances/pypy/module/__builtin__/interp_classobj.py
pypy/branch/better-map-instances/pypy/module/__builtin__/test/test_classobj.py
Log:
that which is not tested is broken
Modified: pypy/branch/better-map-instances/pypy/module/__builtin__/interp_classobj.py
==============================================================================
--- pypy/branch/better-map-instances/pypy/module/__builtin__/interp_classobj.py (original)
+++ pypy/branch/better-map-instances/pypy/module/__builtin__/interp_classobj.py Fri Sep 3 12:59:42 2010
@@ -711,7 +711,7 @@
def descr_del_dict(space, w_inst):
# use setdict to raise the error
- self.setdict(space, space.w_None)
+ w_inst.setdict(space, space.w_None)
dict_descr = GetSetProperty(descr_get_dict, descr_set_dict, descr_del_dict)
dict_descr.name = '__dict__'
Modified: pypy/branch/better-map-instances/pypy/module/__builtin__/test/test_classobj.py
==============================================================================
--- pypy/branch/better-map-instances/pypy/module/__builtin__/test/test_classobj.py (original)
+++ pypy/branch/better-map-instances/pypy/module/__builtin__/test/test_classobj.py Fri Sep 3 12:59:42 2010
@@ -778,6 +778,21 @@
else:
assert 0, "should have raised"
+ def test_dict_descriptor(self):
+ import sys
+ if not hasattr(sys, 'pypy_objspaceclass'):
+ skip("on CPython old-style instances don't have a __dict__ descriptor")
+ class A:
+ pass
+ a = A()
+ a.x = 1
+ descr = type(a).__dict__['__dict__']
+ assert descr.__get__(a) == {'x': 1}
+ descr.__set__(a, {'x': 2})
+ assert a.x == 2
+ raises(TypeError, descr.__delete__, a)
+
+
class AppTestOldStyleSharing(AppTestOldstyle):
def setup_class(cls):
cls.space = gettestobjspace(**{"objspace.std.withsharingdict": True})
More information about the Pypy-commit
mailing list