8000 bpo-25479: add unit test for __subclasshook__ in test_abc.py (GH-2403… · python/cpython@1be9396 · GitHub
[go: up one dir, main page]

Skip to content

Commit 1be9396

Browse files
bpo-25479: add unit test for __subclasshook__ in test_abc.py (GH-24034) (GH-26063)
Co-authored-by: Szymon Trapp (cherry picked from commit 5010c04) Co-authored-by: Karl Dubost <karl+github@la-grange.net>
1 parent ada9cdb commit 1be9396

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

Lib/test/test_abc.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,6 +459,24 @@ class S(metaclass=abc_ABCMeta):
459459
with self.assertRaisesRegex(Exception, exc_msg):
460460
issubclass(int, S)
461461

462+
def test_subclasshook(self):
463+
class A(metaclass=abc.ABCMeta):
464+
@classmethod
465+
def __subclasshook__(cls, C):
466+
if cls is A:
467+
return 'foo' in C.__dict__
468+
return NotImplemented
469+
self.assertFalse(issubclass(A, A))
470+
self.assertFalse(issubclass(A, (A,)))
471+
class B:
472+
foo = 42
473+
self.assertTrue(issubclass(B, A))
474+
self.assertTrue(issubclass(B, (A,)))
475+
class C:
476+
spam = 42
477+
self.assertFalse(issubclass(C, A))
478+
self.assertFalse(issubclass(C, (A,)))
479+
462480
def test_all_new_methods_are_called(self):
463481
class A(metaclass=abc_ABCMeta):
464482
pass

0 commit comments

Comments
 (0)
0