[pypy-svn] rev 944 - in pypy/trunk/src/pypy/objspace/std: . test
mwh at codespeak.net
mwh at codespeak.net
Sun Jun 22 14:44:59 CEST 2003
Author: mwh
Date: Sun Jun 22 14:44:59 2003
New Revision: 944
Modified:
pypy/trunk/src/pypy/objspace/std/test/test_userobject.py
pypy/trunk/src/pypy/objspace/std/usertype.py
Log:
support attribute assignment on user defined classes
Modified: pypy/trunk/src/pypy/objspace/std/test/test_userobject.py
==============================================================================
--- pypy/trunk/src/pypy/objspace/std/test/test_userobject.py (original)
+++ pypy/trunk/src/pypy/objspace/std/test/test_userobject.py Sun Jun 22 14:44:59 2003
@@ -1,52 +1,59 @@
-import autopath
-from pypy.tool import test
-
-class TestUserObject(test.AppTestCase):
-
- def test_emptyclass(self):
- class empty: pass
- inst = empty()
- self.failUnless(isinstance(inst, empty))
- inst.attr=23
- self.assertEquals(inst.attr,23)
-
- def test_subclassing(self):
- for base in tuple, list, dict, str, int, float:
- try:
- class subclass(base): pass
- stuff = subclass()
- except:
- print 'not subclassable:', base
- else:
- self.failUnless(isinstance(stuff, base))
-
- def test_subclasstuple(self):
- class subclass(tuple): pass
- stuff = subclass()
- self.failUnless(isinstance(stuff, tuple))
- stuff.attr = 23
- self.assertEquals(stuff.attr,23)
- self.assertEquals(len(stuff),0)
- result = stuff + (1,2,3)
- self.assertEquals(len(result),3)
-
- def test_subsubclass(self):
- class base:
- baseattr = 12
- class derived(base):
- derivedattr = 34
- inst = derived()
- self.failUnless(isinstance(inst, base))
- self.assertEquals(inst.baseattr,12)
- self.assertEquals(inst.derivedattr,34)
-
- def test_descr_get(self):
- class C:
- class desc:
- def __get__(self, ob, cls=None):
- return 42
- prop = desc()
- self.assertEquals(C().prop, 42)
-
-if __name__ == '__main__':
- test.main()
+import autopath
+from pypy.tool import test
+
+class TestUserObject(test.AppTestCase):
+
+ def test_emptyclass(self):
+ class empty: pass
+ inst = empty()
+ self.failUnless(isinstance(inst, empty))
+ inst.attr=23
+ self.assertEquals(inst.attr,23)
+
+ def test_subclassing(self):
+ for base in tuple, list, dict, str, int, float:
+ try:
+ class subclass(base): pass
+ stuff = subclass()
+ except:
+ print 'not subclassable:', base
+ else:
+ self.failUnless(isinstance(stuff, base))
+
+ def test_subclasstuple(self):
+ class subclass(tuple): pass
+ stuff = subclass()
+ self.failUnless(isinstance(stuff, tuple))
+ stuff.attr = 23
+ self.assertEquals(stuff.attr,23)
+ self.assertEquals(len(stuff),0)
+ result = stuff + (1,2,3)
+ self.assertEquals(len(result),3)
+
+ def test_subsubclass(self):
+ class base:
+ baseattr = 12
+ class derived(base):
+ derivedattr = 34
+ inst = derived()
+ self.failUnless(isinstance(inst, base))
+ self.assertEquals(inst.baseattr,12)
+ self.assertEquals(inst.derivedattr,34)
+
+ def test_descr_get(self):
+ class C:
+ class desc:
+ def __get__(self, ob, cls=None):
+ return 42
+ prop = desc()
+ self.assertEquals(C().prop, 42)
+
+ def test_class_setattr(self):
+ class C:
+ pass
+ C.a = 1
+ self.assert_(hasattr(C, 'a'))
+ self.assertEquals(C.a, 1)
+
+if __name__ == '__main__':
+ test.main()
Modified: pypy/trunk/src/pypy/objspace/std/usertype.py
==============================================================================
--- pypy/trunk/src/pypy/objspace/std/usertype.py (original)
+++ pypy/trunk/src/pypy/objspace/std/usertype.py Sun Jun 22 14:44:59 2003
@@ -63,6 +63,9 @@
space.call(init, w_args, w_kwds)
return newobj
+def getdict__UserType(space, w_usertype):
+ return w_usertype.w_dict
+
def repr__UserType(space, w_usertype):
return space.wrap("<class '%s'>" % w_usertype.typename)
More information about the Pypy-commit
mailing list