[Python-checkins] CVS: python/dist/src/Lib/test test_descr.py,1.1.2.19,1.1.2.20

Guido van Rossum gvanrossum@users.sourceforge.net
Fri, 29 Jun 2001 08:06:34 -0700


Update of /cvsroot/python/python/dist/src/Lib/test
In directory usw-pr-cvs1:/tmp/cvs-serv29317

Modified Files:
      Tag: descr-branch
	test_descr.py 
Log Message:
Add tests for dynamic types.


Index: test_descr.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/Attic/test_descr.py,v
retrieving revision 1.1.2.19
retrieving revision 1.1.2.20
diff -C2 -r1.1.2.19 -r1.1.2.20
*** test_descr.py	2001/06/28 20:35:31	1.1.2.19
--- test_descr.py	2001/06/29 15:06:31	1.1.2.20
***************
*** 502,505 ****
--- 502,544 ----
      verify(x.c == 3)
  
+ def dynamics():
+     if verbose: print "Testing __dynamic__..."
+     class S1:
+         __metaclass__ = type
+     verify(S1.__dynamic__ == 0)
+     class S(object):
+         pass
+     verify(C.__dynamic__ == 0)
+     class D(object):
+         __dynamic__ = 1
+     verify(D.__dynamic__ == 1)
+     class E(D, S):
+         pass
+     verify(E.__dynamic__ == 1)
+     class F(S, D):
+         pass
+     verify(F.__dynamic__ == 1)
+     try:
+         S.foo = 1
+     except (AttributeError, TypeError):
+         pass
+     else:
+         print "Ouch: assignment to a static class attribute shouldn't work!"
+     D.foo = 1
+     verify(D.foo == 1)
+     # Test that dynamic attributes are inherited
+     verify(E.foo == 1)
+     verify(F.foo == 1)
+     class SS(D):
+         __dynamic__ = 0
+     verify(SS.__dynamic__ == 0)
+     verify(SS.foo == 1)
+     try:
+         SS.foo = 1
+     except (AttributeError, TypeError):
+         pass
+     else:
+         print "Ouch: assignment to SS.foo shouldn't work!"
+ 
  def errors():
      if verbose: print "Testing errors..."
***************
*** 572,575 ****
--- 611,615 ----
      objects()
      slots()
+     dynamics()
      errors()