mirror of
https://github.com/python/cpython.git
synced 2026-03-30 08:30:57 +00:00
[3.10] bpo-25479: add unit test for __subclasshook__ in test_abc.py (GH-24034) (GH-26065)
Co-authored-by: Szymon Trapp
(cherry picked from commit 5010c044c7)
Co-authored-by: Karl Dubost <karl+github@la-grange.net>
This commit is contained in:
parent
3e44e9af9e
commit
bd5dfd6c8c
1 changed files with 18 additions and 0 deletions
|
|
@ -459,6 +459,24 @@ class S(metaclass=abc_ABCMeta):
|
|||
with self.assertRaisesRegex(Exception, exc_msg):
|
||||
issubclass(int, S)
|
||||
|
||||
def test_subclasshook(self):
|
||||
class A(metaclass=abc.ABCMeta):
|
||||
@classmethod
|
||||
def __subclasshook__(cls, C):
|
||||
if cls is A:
|
||||
return 'foo' in C.__dict__
|
||||
return NotImplemented
|
||||
self.assertFalse(issubclass(A, A))
|
||||
self.assertFalse(issubclass(A, (A,)))
|
||||
class B:
|
||||
foo = 42
|
||||
self.assertTrue(issubclass(B, A))
|
||||
self.assertTrue(issubclass(B, (A,)))
|
||||
class C:
|
||||
spam = 42
|
||||
self.assertFalse(issubclass(C, A))
|
||||
self.assertFalse(issubclass(C, (A,)))
|
||||
|
||||
def test_all_new_methods_are_called(self):
|
||||
class A(metaclass=abc_ABCMeta):
|
||||
pass
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue