[Python-checkins] CVS: python/dist/src/Lib/test test_descr.py,1.1.2.12,1.1.2.13
Guido van Rossum
gvanrossum@users.sourceforge.net
Thu, 07 Jun 2001 12:17:41 -0700
Update of /cvsroot/python/python/dist/src/Lib/test
In directory usw-pr-cvs1:/tmp/cvs-serv8217
Modified Files:
Tag: descr-branch
test_descr.py
Log Message:
- Reduce the size of the pydict stress test (I got tired of waiting
:-). The size is now parameterized through a local variable so it's
easy to change.
- Add a test for __mro__ to the multi() test.
- Add diamond(), a test for proper method resolution order in diamond
diagrams.
Index: test_descr.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/Attic/test_descr.py,v
retrieving revision 1.1.2.12
retrieving revision 1.1.2.13
diff -C2 -r1.1.2.12 -r1.1.2.13
*** test_descr.py 2001/06/07 15:45:04 1.1.2.12
--- test_descr.py 2001/06/07 19:17:39 1.1.2.13
***************
*** 299,308 ****
verify(a[42] == 24)
if verbose: print "pydict stress test ..."
! for i in range(100):
a[i] = C()
! for j in range(100):
a[i][j] = i*j
! for i in range(100):
! for j in range(100):
verify(a[i][j] == i*j)
--- 299,309 ----
verify(a[42] == 24)
if verbose: print "pydict stress test ..."
! N = 50
! for i in range(N):
a[i] = C()
! for j in range(N):
a[i][j] = i*j
! for i in range(N):
! for j in range(N):
verify(a[i][j] == i*j)
***************
*** 379,383 ****
--- 380,416 ----
d.setstate(10)
verify(d.getstate() == 10)
+ verify(D.__mro__ == (D, dictionary, C, object))
+ def diamond():
+ if verbose: print "Testing multiple inheritance special cases..."
+ class A(object):
+ def spam(self): return "A"
+ verify(A().spam() == "A")
+ class B(A):
+ def boo(self): return "B"
+ def spam(self): return "B"
+ verify(B().spam() == "B")
+ verify(B().boo() == "B")
+ class C(A):
+ def boo(self): return "C"
+ verify(C().spam() == "A")
+ verify(C().boo() == "C")
+ class D(B, C): pass
+ verify(D().spam() == "B")
+ verify(D().boo() == "B")
+ verify(D.__mro__ == (D, B, C, A, object))
+ class E(C, B): pass
+ verify(E().spam() == "B")
+ verify(E().boo() == "C")
+ verify(E.__mro__ == (E, C, B, A, object))
+ class F(D, E): pass
+ verify(F().spam() == "B")
+ verify(F().boo() == "B")
+ verify(F.__mro__ == (F, D, E, B, C, A, object))
+ class G(E, D): pass
+ verify(G().spam() == "B")
+ verify(G().boo() == "C")
+ verify(G.__mro__ == (G, E, D, C, B, A, object))
+
def all():
lists()
***************
*** 392,395 ****
--- 425,429 ----
pymods()
multi()
+ diamond()
all()