[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