[Python-checkins] python/dist/src/Lib/test test_isinstance.py,1.4,1.5

doerwalter@users.sourceforge.net doerwalter@users.sourceforge.net
Thu, 12 Dec 2002 08:42:13 -0800


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

Modified Files:
	test_isinstance.py 
Log Message:
Enhance issubclass() and PyObject_IsSubclass() so that a tuple is
supported as the second argument. This has the same meaning as
for isinstance(), i.e. issubclass(X, (A, B)) is equivalent
to issubclass(X, A) or issubclass(X, B). Compared to isinstance(),
this patch does not search the tuple recursively for classes, i.e.
any entry in the tuple that is not a class, will result in a
TypeError.

This closes SF patch #649608.


Index: test_isinstance.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_isinstance.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** test_isinstance.py	23 Jul 2002 19:03:55 -0000	1.4
--- test_isinstance.py	12 Dec 2002 16:41:39 -0000	1.5
***************
*** 219,222 ****
--- 219,231 ----
          self.assertEqual(False, issubclass(AbstractChild, Child))
  
+     def test_subclass_tuple(self):
+         # test with a tuple as the second argument classes
+         self.assertEqual(True, issubclass(Child, (Child,)))
+         self.assertEqual(True, issubclass(Child, (Super,)))
+         self.assertEqual(False, issubclass(Super, (Child,)))
+         self.assertEqual(True, issubclass(Super, (Child, Super)))
+         self.assertEqual(False, issubclass(Child, ()))
+         self.assertRaises(TypeError, issubclass, Child, ((Child,),))
+