[Python-checkins] bpo-25479: add unit test for __subclasshook__ in test_abc.py (GH-24034) (GH-26063)
iritkatriel
webhook-mailer at python.org
Wed May 12 09:45:28 EDT 2021
https://github.com/python/cpython/commit/1be93960612b29686d42c021f842e63e5143a625
commit: 1be93960612b29686d42c021f842e63e5143a625
branch: 3.9
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: iritkatriel <iritkatriel at yahoo.com>
date: 2021-05-12T14:45:18+01:00
summary:
bpo-25479: add unit test for __subclasshook__ in test_abc.py (GH-24034) (GH-26063)
Co-authored-by: Szymon Trapp
(cherry picked from commit 5010c044c73ee55d0fd578cfecd3f4c3f01a4140)
Co-authored-by: Karl Dubost <karl+github at la-grange.net>
files:
M Lib/test/test_abc.py
diff --git a/Lib/test/test_abc.py b/Lib/test/test_abc.py
index 7e9c47b3cacb9..3f668e9187d9b 100644
--- a/Lib/test/test_abc.py
+++ b/Lib/test/test_abc.py
@@ -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
More information about the Python-checkins
mailing list