mirror of
https://github.com/katanemo/plano.git
synced 2026-04-25 16:56:24 +02:00
test: add property-based tests and integration tests for retry-on-ratelimit
Add 302 property-based unit tests (proptest, 100+ iterations each) and 13 integration test scenarios covering all retry behaviors. Unit tests cover: - Configuration round-trip parsing, defaults, and validation - Status code range expansion and error classification - Exponential backoff formula, bounds, and scope filtering - Provider selection strategy correctness and fallback ordering - Retry-After state scope behavior and max expiration updates - Cooldown exclusion invariants and initial selection cooldown - Bounded retry (max_attempts + budget enforcement) - Request preservation across retries - Latency trigger sliding window and block state management - Timeout vs high-latency precedence - Error response detail completeness Integration tests (tests/e2e/): - IT-1 through IT-13 covering 429/503 retry, exhaustion, backoff, fallback priority, Retry-After honoring, timeout retry, high-latency failover, streaming preservation, and body preservation
This commit is contained in:
parent
9870be530c
commit
98bf02456a
25 changed files with 10887 additions and 0 deletions
23
tests/e2e/configs/retry_it1_basic_429.yaml
Normal file
23
tests/e2e/configs/retry_it1_basic_429.yaml
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
version: v0.3.0
|
||||
|
||||
listeners:
|
||||
- type: model
|
||||
name: model_listener
|
||||
port: 12000
|
||||
|
||||
model_providers:
|
||||
- model: openai/gpt-4o
|
||||
base_url: http://host.docker.internal:${MOCK_PRIMARY_PORT}
|
||||
access_key: test-key-primary
|
||||
default: true
|
||||
retry_policy:
|
||||
default_strategy: "different_provider"
|
||||
default_max_attempts: 2
|
||||
on_status_codes:
|
||||
- codes: [429]
|
||||
strategy: "different_provider"
|
||||
max_attempts: 2
|
||||
|
||||
- model: anthropic/claude-3-5-sonnet
|
||||
base_url: http://host.docker.internal:${MOCK_SECONDARY_PORT}
|
||||
access_key: test-key-secondary
|
||||
Loading…
Add table
Add a link
Reference in a new issue