Add QueueRepositoryInterface with memory and file-backed adapters.
PR Title Check / check-title (pull_request) Successful in 9s
Code Quality Pipeline / code-quality (pull_request) Failing after 53s
Test Python Package / unit-tests (pull_request) Successful in 1m1s
Test Python Package / integration-tests (pull_request) Successful in 1m44s
Test Python Package / coverage-report (pull_request) Successful in 13s
PR Title Check / check-title (pull_request) Successful in 9s
Code Quality Pipeline / code-quality (pull_request) Failing after 53s
Test Python Package / unit-tests (pull_request) Successful in 1m1s
Test Python Package / integration-tests (pull_request) Successful in 1m44s
Test Python Package / coverage-report (pull_request) Successful in 13s
Provide a generic disk-backed FIFO queue with configurable path, retention, and dedup keys so consumers can buffer items across restarts without optional extras. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
co-authored by
Cursor
parent
88ea7f06ab
commit
4f58c32dd6
@@ -46,6 +46,8 @@ assert JsonRepositoryInterface is not None
|
||||
assert "python_repositories.adapters.redis_adapter" not in sys.modules
|
||||
assert "python_repositories.adapters.minio_adapter" not in sys.modules
|
||||
assert "python_repositories.adapters.postgres_adapter" not in sys.modules
|
||||
assert "python_repositories.adapters.memory_queue_adapter" not in sys.modules
|
||||
assert "python_repositories.adapters.file_backed_queue_adapter" not in sys.modules
|
||||
"""
|
||||
result = subprocess.run(
|
||||
[sys.executable, "-c", script],
|
||||
@@ -59,11 +61,19 @@ assert "python_repositories.adapters.postgres_adapter" not in sys.modules
|
||||
|
||||
def test_lazy_adapter_load_succeeds_when_extra_present() -> None:
|
||||
"""Adapters load when their optional dependencies are installed."""
|
||||
from python_repositories import MinioAdapter, PostgresAdapter, RedisAdapter
|
||||
from python_repositories import (
|
||||
FileBackedQueueAdapter,
|
||||
MemoryQueueAdapter,
|
||||
MinioAdapter,
|
||||
PostgresAdapter,
|
||||
RedisAdapter,
|
||||
)
|
||||
|
||||
assert RedisAdapter.__name__ == "RedisAdapter"
|
||||
assert MinioAdapter.__name__ == "MinioAdapter"
|
||||
assert PostgresAdapter.__name__ == "PostgresAdapter"
|
||||
assert MemoryQueueAdapter.__name__ == "MemoryQueueAdapter"
|
||||
assert FileBackedQueueAdapter.__name__ == "FileBackedQueueAdapter"
|
||||
|
||||
|
||||
def test_redis_adapter_import_error_without_extra() -> None:
|
||||
@@ -149,9 +159,13 @@ def test_adapters_dir_exposes_lazy_exports() -> None:
|
||||
"""dir(adapters) includes lazy adapter names for tab completion."""
|
||||
import python_repositories.adapters as adapters
|
||||
|
||||
assert {"RedisAdapter", "MinioAdapter", "PostgresAdapter"}.issubset(
|
||||
set(dir(adapters))
|
||||
)
|
||||
assert {
|
||||
"RedisAdapter",
|
||||
"MinioAdapter",
|
||||
"PostgresAdapter",
|
||||
"MemoryQueueAdapter",
|
||||
"FileBackedQueueAdapter",
|
||||
}.issubset(set(dir(adapters)))
|
||||
|
||||
|
||||
def test_adapters_getattr_raises_for_unknown() -> None:
|
||||
@@ -167,3 +181,5 @@ def test_top_level_dir_exposes_lazy_exports() -> None:
|
||||
assert "RedisAdapter" in dir(python_repositories)
|
||||
assert "MinioAdapter" in dir(python_repositories)
|
||||
assert "PostgresAdapter" in dir(python_repositories)
|
||||
assert "MemoryQueueAdapter" in dir(python_repositories)
|
||||
assert "FileBackedQueueAdapter" in dir(python_repositories)
|
||||
|
||||
Reference in New Issue
Block a user