Brian Bjarke Jensen and Cursor
a78320b434
Move queue helper functions to staticmethods on their adapters.
...
PR Title Check / check-title (pull_request) Successful in 8s
Test Python Package / unit-tests (pull_request) Successful in 20s
Code Quality Pipeline / code-quality (pull_request) Failing after 32s
Test Python Package / integration-tests (pull_request) Successful in 1m33s
Test Python Package / coverage-report (pull_request) Successful in 16s
Co-authored-by: Cursor <[email protected] >
2026-07-16 21:07:35 +02:00
Brian Bjarke Jensen and Cursor
1822d886b1
Apply ruff formatting to queue adapter and tests.
...
PR Title Check / check-title (pull_request) Successful in 11s
Test Python Package / unit-tests (pull_request) Successful in 16s
Code Quality Pipeline / code-quality (pull_request) Failing after 30s
Test Python Package / integration-tests (pull_request) Successful in 34s
Test Python Package / coverage-report (pull_request) Successful in 16s
Co-authored-by: Cursor <[email protected] >
2026-07-16 20:24:58 +02:00
Brian Bjarke Jensen and Cursor
4f58c32dd6
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
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] >
2026-07-16 20:20:52 +02:00
Brian Bjarke Jensen and Cursor
1babb52d09
Apply ruff formatting to postgres adapter and tests.
...
PR Title Check / check-title (pull_request) Successful in 8s
Test Python Package / unit-tests (pull_request) Successful in 13s
Code Quality Pipeline / code-quality (pull_request) Successful in 24s
Test Python Package / integration-tests (pull_request) Successful in 29s
Test Python Package / coverage-report (pull_request) Successful in 10s
Co-authored-by: Cursor <[email protected] >
2026-07-11 15:01:58 +02:00
Brian Bjarke Jensen and Cursor
2e38bd2406
Fix ruff import ordering in postgres test files.
...
PR Title Check / check-title (pull_request) Successful in 8s
Test Python Package / unit-tests (pull_request) Successful in 10s
Code Quality Pipeline / code-quality (pull_request) Failing after 17s
Test Python Package / integration-tests (pull_request) Successful in 47s
Test Python Package / coverage-report (pull_request) Successful in 12s
Co-authored-by: Cursor <[email protected] >
2026-07-11 15:00:01 +02:00
Brian Bjarke Jensen and Cursor
dc6f8a3e89
Add Postgres table adapter with TableRepositoryInterface.
...
PR Title Check / check-title (pull_request) Successful in 7s
Code Quality Pipeline / code-quality (pull_request) Failing after 19s
Test Python Package / unit-tests (pull_request) Successful in 47s
Test Python Package / integration-tests (pull_request) Successful in 44s
Test Python Package / coverage-report (pull_request) Successful in 11s
Introduce PostgresAdapter for dict-based row CRUD via psycopg3, including config, lazy exports, unit/integration tests with testcontainers, and an example UserTableRepository.
Co-authored-by: Cursor <[email protected] >
2026-07-11 14:57:34 +02:00
Brian Bjarke Jensen and Cursor
44b15cb21a
Move structural typing tests into interface unit test files.
...
Code Quality Pipeline / code-quality (pull_request) Successful in 24s
PR Title Check / check-title (pull_request) Successful in 35s
Test Python Package / coverage-report (pull_request) Successful in 11s
Test Python Package / unit-tests (pull_request) Successful in 12s
Test Python Package / integration-tests (pull_request) Successful in 26s
Align test layout with the one-test-file-per-interface convention by removing structural_typing_test.py.
Co-authored-by: Cursor <[email protected] >
2026-07-11 10:32:17 +02:00
Brian Bjarke Jensen and Cursor
f6ee9a3724
Add runtime-checkable Protocol typing to all public interfaces.
...
PR Title Check / check-title (pull_request) Successful in 7s
Test Python Package / unit-tests (pull_request) Successful in 9s
Code Quality Pipeline / code-quality (pull_request) Successful in 22s
Test Python Package / integration-tests (pull_request) Successful in 24s
Test Python Package / coverage-report (pull_request) Successful in 8s
Enables structural subtyping for consumers while preserving nominal adapter inheritance, instantiation guards, and scan_keys defaults.
Co-authored-by: Cursor <[email protected] >
2026-07-11 09:45:42 +02:00
Brian Bjarke Jensen and Cursor
57b396bcd3
Allow empty payloads in Redis and MinIO adapters.
...
PR Title Check / check-title (pull_request) Successful in 8s
Test Python Package / unit-tests (pull_request) Successful in 12s
Code Quality Pipeline / code-quality (pull_request) Successful in 20s
Test Python Package / integration-tests (pull_request) Successful in 24s
Test Python Package / coverage-report (pull_request) Successful in 11s
Relax write validation so {} and zero-byte BytesIO round-trip correctly,
document None-vs-empty semantics on interfaces and adapters, and add
integration tests for placeholders and existence distinction.
Co-authored-by: Cursor <[email protected] >
2026-07-10 21:39:51 +02:00
Brian Bjarke Jensen and Cursor
b28ac6e803
Scope integration fixtures per backend subdirectory.
...
PR Title Check / check-title (pull_request) Successful in 7s
Test Python Package / unit-tests (pull_request) Successful in 13s
Test Python Package / integration-tests (pull_request) Successful in 23s
Test Python Package / coverage-report (pull_request) Successful in 10s
Code Quality Pipeline / code-quality (pull_request) Successful in 49s
Split Redis and MinIO container setup into backend-specific conftest modules so only the containers needed for collected tests are imported and started.
Co-authored-by: Cursor <[email protected] >
2026-07-10 21:11:53 +02:00
Brian Bjarke Jensen and Cursor
565879dd52
Unify dev tooling via uv so pre-commit, CI, and the update bot stay aligned.
...
Test Python Package / unit-tests (pull_request) Successful in 12s
Code Quality Pipeline / code-quality (pull_request) Successful in 19s
PR Title Check / check-title (pull_request) Successful in 31s
Test Python Package / integration-tests (pull_request) Successful in 23s
Test Python Package / coverage-report (pull_request) Successful in 10s
Route Python hooks through uv run with versions pinned in uv.lock, add explicit
Ruff settings, and extend the dependency bot to run pre-commit autoupdate.
Co-authored-by: Cursor <[email protected] >
2026-07-10 14:29:22 +02:00
Brian Bjarke Jensen and Cursor
82a702db0c
Fix mypy error in Minio adapter log assertion.
...
Test Python Package / unit-tests (pull_request) Successful in 10s
Code Quality Pipeline / code-quality (pull_request) Successful in 33s
Test Python Package / integration-tests (pull_request) Successful in 20s
PR Title Check / check-title (pull_request) Successful in 42s
Test Python Package / coverage-report (pull_request) Successful in 14s
Narrow optional bucket name before checking it appears in captured log text.
Co-authored-by: Cursor <[email protected] >
2026-07-10 14:04:36 +02:00
Brian Bjarke Jensen and Cursor
b886a7c147
Use structured fields for adapter debug and info logs.
...
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / unit-tests (pull_request) Successful in 9s
Code Quality Pipeline / code-quality (pull_request) Failing after 14s
Test Python Package / integration-tests (pull_request) Successful in 1m2s
Test Python Package / coverage-report (pull_request) Successful in 11s
Replace f-string log messages with structlog keyword fields so events aggregate cleanly and Redis payloads are not logged verbatim.
Co-authored-by: Cursor <[email protected] >
2026-07-10 14:00:34 +02:00
Brian Bjarke Jensen and Cursor
42e885edd5
Use dict[str, Any] for JSON repository document types.
...
PR Title Check / check-title (pull_request) Successful in 6s
Code Quality Pipeline / code-quality (pull_request) Successful in 1m28s
Test Python Package / unit-tests (pull_request) Successful in 1m29s
Test Python Package / coverage-report (pull_request) Successful in 16s
Test Python Package / integration-tests (pull_request) Successful in 48s
Clarifies that JSON CRUD operates on string-keyed objects without changing runtime behavior.
Co-authored-by: Cursor <[email protected] >
2026-07-09 18:41:23 +02:00
Brian Bjarke Jensen and Cursor
b8d88e6703
Cover injected-client connect when client was cleared by disconnect.
...
PR Title Check / check-title (pull_request) Successful in 5s
Code Quality Pipeline / code-quality (pull_request) Successful in 26s
Test Python Package / integration-tests (pull_request) Successful in 1m5s
Test Python Package / unit-tests (pull_request) Successful in 29s
Test Python Package / coverage-report (pull_request) Successful in 41s
Restore 100% coverage for the _validate_injected_client early-return paths in Redis and MinIO adapters.
Co-authored-by: Cursor <[email protected] >
2026-07-09 15:57:07 +02:00
Brian Bjarke Jensen and Cursor
67bb88fbb4
Align Redis and MinIO connect() idempotency in ConnectionAwareAdapter.
...
PR Title Check / check-title (pull_request) Successful in 5s
Test Python Package / unit-tests (pull_request) Successful in 13s
Test Python Package / integration-tests (pull_request) Successful in 30s
Test Python Package / coverage-report (pull_request) Failing after 15s
Code Quality Pipeline / code-quality (pull_request) Successful in 53s
Move shared connect orchestration into the base adapter so both backends short-circuit when already healthy and only reconnect after a failed probe.
Co-authored-by: Cursor <[email protected] >
2026-07-09 15:46:39 +02:00
Brian Bjarke Jensen and Cursor
39baf9badc
Fix examples integration test by provisioning MinIO bucket in fixture.
...
Test Python Package / unit-tests (pull_request) Successful in 18s
PR Title Check / check-title (pull_request) Successful in 34s
Test Python Package / integration-tests (pull_request) Successful in 33s
Code Quality Pipeline / code-quality (pull_request) Successful in 49s
Test Python Package / coverage-report (pull_request) Successful in 51s
Ensure set_example_env depends on raw_minio_client so ArtifactObjectRepository connects against an existing bucket under the new production-safe default.
Co-authored-by: Cursor <[email protected] >
2026-07-09 15:06:30 +02:00
Brian Bjarke Jensen and Cursor
4a5b3b631f
Make MinIO bucket creation opt-in with production-safe defaults.
...
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / unit-tests (pull_request) Successful in 18s
Code Quality Pipeline / code-quality (pull_request) Successful in 1m28s
Test Python Package / integration-tests (pull_request) Failing after 1m54s
Test Python Package / coverage-report (pull_request) Has been skipped
Require buckets to exist by default on connect, extract env_bool parsing, and document local dev overrides for secure and auto-creation settings.
Co-authored-by: Cursor <[email protected] >
2026-07-09 14:52:14 +02:00
Brian Bjarke Jensen and Cursor
eafc717045
Move Redis test container helpers into integration conftest.
...
PR Title Check / check-title (pull_request) Successful in 5s
Test Python Package / unit-tests (pull_request) Successful in 14s
Code Quality Pipeline / code-quality (pull_request) Successful in 31s
Test Python Package / integration-tests (pull_request) Successful in 1m9s
Test Python Package / coverage-report (pull_request) Successful in 29s
Colocate RedisTestContainer with the fixtures that use it and remove the misleading redis_container_test module plus collect_ignore workaround.
Co-authored-by: Cursor <[email protected] >
2026-07-08 21:17:33 +02:00
Brian Bjarke Jensen and Cursor
50444af982
Add Redis scan_keys iterator API.
...
Test Python Package / unit-tests (pull_request) Successful in 14s
Code Quality Pipeline / code-quality (pull_request) Successful in 32s
Test Python Package / coverage-report (pull_request) Successful in 16s
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / integration-tests (pull_request) Successful in 1m3s
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 <[email protected] >
2026-07-08 21:06:13 +02:00
Brian Bjarke Jensen and Cursor
5311d49fa6
Clarify MinIO get() error semantics to match Redis behavior.
...
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / integration-tests (pull_request) Successful in 1m17s
Test Python Package / unit-tests (pull_request) Successful in 1m28s
Code Quality Pipeline / code-quality (pull_request) Successful in 1m36s
Test Python Package / coverage-report (pull_request) Successful in 16s
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 <[email protected] >
2026-07-08 20:02:03 +02:00
Brian Bjarke Jensen and Cursor
8c34534187
Fix MinIO get_object response leak in MinioAdapter.get().
...
Test Python Package / integration-tests (pull_request) Successful in 27s
Code Quality Pipeline / code-quality (pull_request) Successful in 31s
Test Python Package / unit-tests (pull_request) Successful in 36s
Test Python Package / coverage-report (pull_request) Successful in 53s
PR Title Check / check-title (pull_request) Failing after 5s
Close and release the HTTP response in a finally block per SDK guidance, and add unit tests for success and read-failure cleanup.
Co-authored-by: Cursor <[email protected] >
2026-07-07 21:21:42 +02:00
Brian Bjarke Jensen and Cursor
39b104383c
Fix mypy unreachable-code warning in minio reconnect test.
...
PR Title Check / check-title (pull_request) Successful in 7s
Test Python Package / coverage-report (pull_request) Successful in 12s
Code Quality Pipeline / code-quality (pull_request) Successful in 48s
Test Python Package / unit-tests (pull_request) Successful in 19s
Test Python Package / integration-tests (pull_request) Successful in 28s
Drop bucket_name assertions that mypy treated as always false after manually clearing _bucket_name.
Co-authored-by: Cursor <[email protected] >
2026-07-07 21:04:39 +02:00
Brian Bjarke Jensen and Cursor
beb2b5128e
Reach 100% combined coverage with targeted unit tests.
...
Code Quality Pipeline / code-quality (pull_request) Failing after 29s
Test Python Package / integration-tests (pull_request) Successful in 35s
Test Python Package / unit-tests (pull_request) Successful in 42s
PR Title Check / check-title (pull_request) Successful in 52s
Test Python Package / coverage-report (pull_request) Successful in 12s
Add fast unit tests for lazy-import helpers and injected-client connect paths that integration tests miss, and raise the coverage floor to 100%.
Co-authored-by: Cursor <[email protected] >
2026-07-07 21:01:03 +02:00
Brian Bjarke Jensen and Cursor
3aa91280ec
Load MINIO_SECURE from env and replace adapter asserts with explicit errors.
...
Code Quality Pipeline / code-quality (pull_request) Successful in 32s
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / test (pull_request) Successful in 57s
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 <[email protected] >
2026-07-06 20:45:37 +02:00
Brian Bjarke Jensen and Cursor
7991dabdbc
Add config and client injection with test reorganization.
...
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 <[email protected] >
2026-07-06 20:44:08 +02:00
Brian Bjarke Jensen and Cursor
7b950e0d93
Extract shared connection lifecycle into ConnectionAwareAdapter.
...
Move duplicated context-manager, health-check cache, and connection guards from Redis and Minio adapters into an internal base class.
Co-authored-by: Cursor <[email protected] >
2026-07-05 16:09:25 +02:00
Brian Bjarke Jensen and Cursor
5149299c1b
Strengthen is_connected with cached health probes.
...
Code Quality Pipeline / code-quality (pull_request) Failing after 35s
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / test (pull_request) Successful in 1m9s
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 <[email protected] >
2026-07-05 15:28:25 +02:00
Brian Bjarke Jensen and Cursor
f5953906c1
Fix optional-deps import test for full-suite execution.
...
Code Quality Pipeline / code-quality (pull_request) Successful in 31s
PR Title Check / check-title (pull_request) Successful in 5s
Test Python Package / test (pull_request) Successful in 41s
Run the base-import assertion in a subprocess so integration tests do not pollute sys.modules.
Co-authored-by: Cursor <[email protected] >
2026-06-30 16:05:41 +02:00
Brian Bjarke Jensen and Cursor
1f02195c27
Delegate top-level adapter imports to adapters package.
...
Code Quality Pipeline / code-quality (pull_request) Successful in 47s
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / test (pull_request) Failing after 1m1s
Keep lazy loading in adapters/__init__.py as the single place to register new adapters.
Co-authored-by: Cursor <[email protected] >
2026-06-30 15:57:52 +02:00
Brian Bjarke Jensen and Cursor
c6eed43d70
Fix optional dependency handling for Redis and MinIO adapters.
...
Lazy-load adapters at package boundaries and fail fast with install hints when extras are missing.
Co-authored-by: Cursor <[email protected] >
2026-06-30 15:47:04 +02:00
Brian Bjarke Jensen and Cursor
0096df78a5
Avoid testcontainers Redis deprecation warning in integration tests.
...
Code Quality Pipeline / code-quality (pull_request) Successful in 47s
PR Title Check / check-title (pull_request) Successful in 5s
Test Python Package / test (pull_request) Successful in 52s
Use a local RedisTestContainer with wait strategies instead of the deprecated RedisContainer, and keep conftest focused on fixtures.
Co-authored-by: Cursor <[email protected] >
2026-06-29 15:00:45 +02:00
Brian Bjarke Jensen and Cursor
0f31170209
Fix mypy errors from minio 7.2.20 type stubs.
...
Code Quality Pipeline / code-quality (pull_request) Successful in 36s
PR Title Check / check-title (pull_request) Failing after 6s
Test Python Package / test (pull_request) Successful in 43s
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 <[email protected] >
2026-06-28 23:32:31 +02:00
Brian Bjarke Jensen and Cursor
e98fd3b90d
Add public repository interfaces and subclassable adapter CRUD API.
...
Code Quality Pipeline / code-quality (pull_request) Failing after 19s
Test Python Package / test (pull_request) Successful in 50s
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] >
2026-06-28 10:58:33 +02:00
Brian Bjarke Jensen
3ab8da92fb
added support for content type when putting object in minio
Code Quality Pipeline / code-quality (pull_request) Failing after 24s
Test Python Package / test (pull_request) Successful in 1m9s
2025-09-18 19:34:05 +02:00
Brian Bjarke Jensen
c7bced4254
ruff lint fixes
Code Quality Pipeline / code-quality (pull_request) Successful in 17s
Test Python Package / test (pull_request) Failing after 12s
2025-09-15 00:56:21 +02:00
Brian Bjarke Jensen
800d702d7a
pyupgrade
Test Python Package / test (pull_request) Failing after 11s
Code Quality Pipeline / code-quality (pull_request) Failing after 43s
2025-09-15 00:54:01 +02:00
Brian Bjarke Jensen
5a72507775
ruff format
2025-09-15 00:53:38 +02:00
Brian Bjarke Jensen
c45ba3c5d5
mypy fixes
2025-09-15 00:53:26 +02:00
Brian Bjarke Jensen
a3b5443e0d
added minio adapter and tests
Code Quality Pipeline / code-quality (pull_request) Failing after 46s
Test Python Package / test (pull_request) Failing after 11s
2025-09-15 00:43:43 +02:00
Brian Bjarke Jensen
cc99fe5a2f
minor corrections
2025-09-15 00:43:32 +02:00
Brian Bjarke Jensen
1cc047d3b8
removed unused bound ports for test
Code Quality Pipeline / code-quality (pull_request) Successful in 17s
Test Python Package / test (pull_request) Successful in 16s
2025-09-14 20:40:10 +02:00
Brian Bjarke Jensen
b5d0297375
pyupgrade fixed imports
Code Quality Pipeline / code-quality (pull_request) Successful in 17s
Test Python Package / test (pull_request) Failing after 10s
2025-09-14 20:11:26 +02:00
Brian Bjarke Jensen
2fa633a44f
ruff fixed formatting
Code Quality Pipeline / code-quality (pull_request) Failing after 15s
Test Python Package / test (pull_request) Failing after 10s
2025-09-14 20:09:33 +02:00
Brian Bjarke Jensen
0e47db238a
fuxed mypy issues
Code Quality Pipeline / code-quality (pull_request) Failing after 14s
Test Python Package / test (pull_request) Failing after 9s
2025-09-14 20:08:30 +02:00
Brian Bjarke Jensen
0948799653
added integration tests
Test Python Package / test (pull_request) Failing after 11s
Code Quality Pipeline / code-quality (pull_request) Failing after 43s
2025-09-14 19:52:47 +02:00