Add public repository interfaces and subclassable adapter CRUD API.
Define split JSON and object repository ABCs, promote adapter methods to public CRUD, add example domain repositories, modernize interface stubs, and make the package installable for tests. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
co-authored by
Cursor
parent
f4280f15c1
commit
e98fd3b90d
@@ -1,6 +1,7 @@
|
||||
"""Integration tests for ContextAwareInterface."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import pytest
|
||||
from python_repositories.interfaces.context_aware_interface import ContextAwareInterface
|
||||
|
||||
@@ -31,42 +32,3 @@ def test_instantiation_fails_when_exit_not_implemented() -> None:
|
||||
|
||||
with pytest.raises(TypeError):
|
||||
_ = Incomplete() # type: ignore
|
||||
|
||||
|
||||
def test_enter_raises_not_implemented_if_not_overwritten() -> None:
|
||||
"""Test that __enter__ raises NotImplementedError if not implemented."""
|
||||
|
||||
class Incomplete(ContextAwareInterface):
|
||||
"""A class that does not implement __enter__."""
|
||||
|
||||
def __enter__(self) -> Incomplete:
|
||||
super().__enter__() # type: ignore
|
||||
return self
|
||||
|
||||
def __exit__(
|
||||
self, exc_type: type | None, exc_val: object | None, exc_tb: object | None
|
||||
) -> None:
|
||||
pass
|
||||
|
||||
instance = Incomplete()
|
||||
with pytest.raises(NotImplementedError):
|
||||
instance.__enter__()
|
||||
|
||||
|
||||
def test_exit_raises_not_implemented_if_not_overwritten() -> None:
|
||||
"""Test that __exit__ raises NotImplementedError if not implemented."""
|
||||
|
||||
class Incomplete(ContextAwareInterface):
|
||||
"""A class that does not implement __exit__."""
|
||||
|
||||
def __enter__(self) -> ContextAwareInterface:
|
||||
return self
|
||||
|
||||
def __exit__(
|
||||
self, exc_type: type | None, exc_val: object | None, exc_tb: object | None
|
||||
) -> None:
|
||||
super().__exit__(exc_type, exc_val, exc_tb) # type: ignore
|
||||
|
||||
instance = Incomplete()
|
||||
with pytest.raises(NotImplementedError):
|
||||
instance.__exit__(None, None, None)
|
||||
|
||||
Reference in New Issue
Block a user