diff --git a/seam/models.py b/seam/models.py index 8339979a..155c0ca7 100644 --- a/seam/models.py +++ b/seam/models.py @@ -120,7 +120,7 @@ async def list( raise NotImplementedError() -class AbstractSeamWithoutWorkspace: +class AbstractSeamWithoutWorkspace(abc.ABC): wait_for_action_attempt: Optional[Union[bool, Dict[str, float]]] @abc.abstractmethod @@ -145,7 +145,7 @@ def from_personal_access_token( raise NotImplementedError -class AbstractAsyncSeamWithoutWorkspace: +class AbstractAsyncSeamWithoutWorkspace(abc.ABC): wait_for_action_attempt: Optional[Union[bool, Dict[str, float]]] @abc.abstractmethod diff --git a/test/abstract_models_test.py b/test/abstract_models_test.py new file mode 100644 index 00000000..9b95e51c --- /dev/null +++ b/test/abstract_models_test.py @@ -0,0 +1,18 @@ +import pytest + +from seam.models import ( + AbstractAsyncSeamWithoutWorkspace, + AbstractSeamWithoutWorkspace, +) + + +def test_abstract_seam_without_workspace_cannot_be_instantiated(): + with pytest.raises(TypeError, match="abstract"): + # pylint: disable-next=abstract-class-instantiated + AbstractSeamWithoutWorkspace("seam_at_token") # type: ignore[abstract] + + +def test_abstract_async_seam_without_workspace_cannot_be_instantiated(): + with pytest.raises(TypeError, match="abstract"): + # pylint: disable-next=abstract-class-instantiated + AbstractAsyncSeamWithoutWorkspace("seam_at_token") # type: ignore[abstract]