[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():

AltStyle によって変換されたページ (->オリジナル) /