Files
RustPython/extra_tests/snippets/stdlib_abc.py
Patrick 0e24cf48c6 Fix abc error message (#4987)
* Print correct error message for abc instantiation

* Update dataclasses abc test
2023-05-23 16:43:52 +09:00

39 lines
687 B
Python

import abc
from testutils import assert_raises
class CustomInterface(abc.ABC):
@abc.abstractmethod
def a(self):
pass
@classmethod
def __subclasshook__(cls, subclass):
return NotImplemented
with assert_raises(TypeError):
CustomInterface()
class Concrete:
def a(self):
pass
CustomInterface.register(Concrete)
class SubConcrete(Concrete):
pass
assert issubclass(Concrete, CustomInterface)
assert issubclass(SubConcrete, CustomInterface)
assert not issubclass(tuple, CustomInterface)
assert isinstance(Concrete(), CustomInterface)
assert isinstance(SubConcrete(), CustomInterface)
assert not isinstance((), CustomInterface)