File tree Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Original file line number Diff line number Diff line change @@ -459,6 +459,24 @@ class S(metaclass=abc_ABCMeta):
459
459
with self .assertRaisesRegex (Exception , exc_msg ):
460
460
issubclass (int , S )
461
461
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
+
462
480
def test_all_new_methods_are_called (self ):
463
481
class A (metaclass = abc_ABCMeta ):
464
482
pass
You can’t perform that action at this time.
0 commit comments