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):
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
You can’t perform that action at this time.
0 commit comments