summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_isinstance.py
diff options
context:
space:
mode:
authorWalter Dörwald <walter@livinglogic.de>2002-12-12 16:41:44 (GMT)
committerWalter Dörwald <walter@livinglogic.de>2002-12-12 16:41:44 (GMT)
commitd9a6ad3bebc2b451482db152171fca3144b2cd97 (patch)
tree59624bf7be4191d6d918fd91a821636a4157aa6a /Lib/test/test_isinstance.py
parentb083cb3901fcb7487c04ad996148d1cf0aa32350 (diff)
downloadcpython-d9a6ad3bebc2b451482db152171fca3144b2cd97.zip
cpython-d9a6ad3bebc2b451482db152171fca3144b2cd97.tar.gz
cpython-d9a6ad3bebc2b451482db152171fca3144b2cd97.tar.bz2
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.
Diffstat (limited to 'Lib/test/test_isinstance.py')
-rw-r--r--Lib/test/test_isinstance.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/Lib/test/test_isinstance.py b/Lib/test/test_isinstance.py
index 8dfb956..1bb09a6 100644
--- a/Lib/test/test_isinstance.py
+++ b/Lib/test/test_isinstance.py
@@ -218,6 +218,15 @@ class TestIsInstanceIsSubclass(unittest.TestCase):
self.assertEqual(False, issubclass(AbstractChild, Super))
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,),))
+