fork download
  1. import abc
  2. import inspect
  3. from unittest.mock import MagicMock
  4.  
  5. class A(abc.ABC):
  6. pass
  7.  
  8. class B(A):
  9. pass
  10.  
  11. def test_sub_class():
  12. b_class_mock = _create_class_mock(B)
  13.  
  14. print(isinstance(b_class_mock, type))
  15. print(inspect.isclass(b_class_mock))
  16. print(issubclass(b_class_mock, A))
  17.  
  18. def _create_class_mock(cls):
  19. class _MockABCMeta(abc.ABCMeta):
  20. def __getattribute__(self, name):
  21. try:
  22. return getattr(mock, name)
  23. except AttributeError:
  24. return getattr(cls, name)
  25.  
  26. mock = MagicMock(spec=cls)
  27. return _MockABCMeta(cls.__name__, cls.__bases__, {})
  28.  
  29. test_sub_class()
Success #stdin #stdout 0.13s 16860KB
stdin
Standard input is empty
stdout
True
True
True