Colocate RedisTestContainer with the fixtures that use it and remove the misleading redis_container_test module plus collect_ignore workaround.
Co-authored-by: Cursor <cursoragent@cursor.com>
Provide a SCAN-based key iterator for Redis adapters so callers can enumerate large keyspaces without relying on blocking KEYS lookups.
Co-authored-by: Cursor <cursoragent@cursor.com>
Return None only for missing objects and re-raise other S3 and network failures so callers can distinguish not-found from real errors.
Co-authored-by: Cursor <cursoragent@cursor.com>
Default TLS to enabled for production MinIO setups while keeping local and integration tests on plain HTTP via explicit secure=false configuration.
Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce typed config objects, optional adapter injection, and .env loading to simplify testing while preserving env-based defaults for production usage.
Co-authored-by: Cursor <cursoragent@cursor.com>
Convert is_connected to a method that verifies backend liveness via TTL-cached ping (Redis) or bucket_exists (MinIO), with cache invalidation on connect/disconnect.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use a local RedisTestContainer with wait strategies instead of the deprecated RedisContainer, and keep conftest focused on fixtures.
Co-authored-by: Cursor <cursoragent@cursor.com>
Guard bucket_name before Minio API calls, update S3Error test mocks for the new constructor signature, and add types-redis to the pre-commit mypy hook.
Co-authored-by: Cursor <cursoragent@cursor.com>
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 <cursoragent@cursor.com>