test: add integration tests for all backends#10
Merged
Conversation
35C4n0r
commented
May 24, 2026
Owner
- test_policy_resolver: add two tests that exercise a policy_resolver creating fresh TTLPolicy instances per call; the 50-thread scale test reliably reproduces the id()-cache collision that caused wrong threads to be evaluated against the wrong TTL
- test_sweeper: replace test_loop_fails_on_exception (which asserted the broken die-on-error behavior) with test_loop_continues_after_exception and test_loop_logs_exception that verify the loop survives transient failures and emits an ERROR-level log entry
- test_strategy_sqlite: add tests that query the writes table directly after a sweep, and a cross-contamination test that verifies surviving threads are not touched
- test_strategy_postgres: full rewrite - add _row_count helpers, collect tests, hard_age_ttl test, three-table cleanup assertions for both sync and async paths, advisory lock type checks, real two-sweeper lock contention test, and incremental cursor collection test
- pyproject.toml: add test-postgres extra with testcontainers[postgres], langgraph-checkpoint-postgres, and psycopg[binary]
- ci.yml: add test-postgres job that installs test-postgres extra and runs tests/test_strategy_postgres.py; exclude postgres tests from the matrix job so they only run under Docker
…aces - test_policy_resolver: add two tests that exercise a policy_resolver creating fresh TTLPolicy instances per call; the 50-thread scale test reliably reproduces the id()-cache collision that caused wrong threads to be evaluated against the wrong TTL - test_sweeper: replace test_loop_fails_on_exception (which asserted the broken die-on-error behavior) with test_loop_continues_after_exception and test_loop_logs_exception that verify the loop survives transient failures and emits an ERROR-level log entry - test_strategy_sqlite: add tests that query the writes table directly after a sweep, and a cross-contamination test that verifies surviving threads are not touched - test_strategy_postgres: full rewrite - add _row_count helpers, collect tests, hard_age_ttl test, three-table cleanup assertions for both sync and async paths, advisory lock type checks, real two-sweeper lock contention test, and incremental cursor collection test - pyproject.toml: add test-postgres extra with testcontainers[postgres], langgraph-checkpoint-postgres, and psycopg[binary] - ci.yml: add test-postgres job that installs test-postgres extra and runs tests/test_strategy_postgres.py; exclude postgres tests from the matrix job so they only run under Docker
e0752f8 to
47d8a82
Compare
47d8a82 to
6969b7b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.