[Python-checkins] CVS: python/dist/src/Lib/test test_descr.py,1.103,1.104
Tim Peters
tim_one@users.sourceforge.net
2001年11月14日 15:56:47 -0800
Update of /cvsroot/python/python/dist/src/Lib/test
In directory usw-pr-cvs1:/tmp/cvs-serv14191/python/Lib/test
Modified Files:
test_descr.py
Log Message:
More simple test cases for mixed classic+new multiple inheritance.
Index: test_descr.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_descr.py,v
retrieving revision 1.103
retrieving revision 1.104
diff -C2 -d -r1.103 -r1.104
*** test_descr.py 2001年11月14日 23:32:33 1.103
--- test_descr.py 2001年11月14日 23:56:45 1.104
***************
*** 831,834 ****
--- 831,862 ----
# MI mixing classic and new-style classes.
+
+ class A:
+ x = 1
+
+ class B(A):
+ pass
+
+ class C(A):
+ x = 2
+
+ class D(B, C):
+ pass
+ vereq(D.x, 1)
+
+ # Classic MRO is preserved for a classic base class.
+ class E(D, object):
+ pass
+ vereq(E.__mro__, (E, D, B, A, C, object))
+ vereq(E.x, 1)
+
+ # But with a mix of classic bases, their MROs are combined using
+ # new-style MRO.
+ class F(B, C, object):
+ pass
+ vereq(F.__mro__, (F, B, C, A, object))
+ vereq(F.x, 2)
+
+ # Try something else.
class C:
def cmethod(self):
***************
*** 876,879 ****
--- 904,914 ----
# vereq(M3.__mro__, (M3, M1, M2, object, D, C))
vereq(M3.__mro__, (M3, M1, M2, D, C, object)) # XXX ?
+ m = M3()
+ vereq(m.cmethod(), "C a")
+ vereq(m.dmethod(), "D a")
+ vereq(m.m1method(), "M1 a")
+ vereq(m.m2method(), "M2 a")
+ vereq(m.m3method(), "M3 a")
+ vereq(m.all_method(), "M3 b")
def diamond():