diff options
author | Jeffrey Yasskin <jyasskin@gmail.com> | 2008-01-07 06:09:40 +0000 |
---|---|---|
committer | Jeffrey Yasskin <jyasskin@gmail.com> | 2008-01-07 06:09:40 +0000 |
commit | fd1c24518be99e3e2d0891bf7d2c94fbd4d39367 (patch) | |
tree | ae5a461b96e832a20a548ba62a993876b62637be /Lib/test/test_abc.py | |
parent | 1db6f80cd5259841f1387f14bf773ebc3c946502 (diff) | |
download | cpython-git-fd1c24518be99e3e2d0891bf7d2c94fbd4d39367.tar.gz |
Fix issue 1747: allow classic classes to be checked for being subclasses of
ABCs.
Diffstat (limited to 'Lib/test/test_abc.py')
-rw-r--r-- | Lib/test/test_abc.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/Lib/test/test_abc.py b/Lib/test/test_abc.py index c760356fa0..272f61df12 100644 --- a/Lib/test/test_abc.py +++ b/Lib/test/test_abc.py @@ -8,7 +8,6 @@ import unittest from test import test_support import abc -__metaclass__ = type class TestABC(unittest.TestCase): @@ -59,10 +58,18 @@ class TestABC(unittest.TestCase): self.assertEqual(F.__abstractmethods__, set(["bar"])) self.assertRaises(TypeError, F) # because bar is abstract now + def test_subclass_oldstyle_class(self): + class A: + __metaclass__ = abc.ABCMeta + class OldstyleClass: + pass + self.assertFalse(issubclass(OldstyleClass, A)) + self.assertFalse(issubclass(A, OldstyleClass)) + def test_registration_basics(self): class A: __metaclass__ = abc.ABCMeta - class B: + class B(object): pass b = B() self.assertEqual(issubclass(B, A), False) @@ -95,7 +102,7 @@ class TestABC(unittest.TestCase): class A1(A): pass self.assertRaises(RuntimeError, A1.register, A) # cycles not allowed - class B: + class B(object): pass A1.register(B) # ok A1.register(B) # should pass silently @@ -136,7 +143,7 @@ class TestABC(unittest.TestCase): def test_all_new_methods_are_called(self): class A: __metaclass__ = abc.ABCMeta - class B: + class B(object): counter = 0 def __new__(cls): B.counter += 1 |