mirror of
https://github.com/katanemo/plano.git
synced 2026-05-27 14:17:15 +02:00
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 |
||
|---|---|---|
| .. | ||
| .vscode | ||
| configs | ||
| common.py | ||
| common_scripts.sh | ||
| config_memory_state_v1_responses.yaml | ||
| config_native_smoke.yaml | ||
| docker-compose.yaml | ||
| pyproject.toml | ||
| README.md | ||
| response.hex | ||
| response_with_tools.hex | ||
| run_e2e_tests.sh | ||
| run_model_alias_tests.sh | ||
| run_prompt_gateway_tests.sh | ||
| run_responses_state_tests.sh | ||
| test_model_alias_routing.py | ||
| test_openai_responses_api_client.py | ||
| test_openai_responses_api_client_with_state.py | ||
| test_prompt_gateway.py | ||
| test_retry_integration.py | ||
| uv.lock | ||
e2e tests
e2e tests for arch llm gateway and prompt gateway
To be able to run e2e tests successfully run_e2e_script prepares environment in following way,
- build and start weather_forecast demo (using docker compose)
- build, install and start model server async (using uv)
- build and start Plano gateway (using docker compose)
- wait for model server to be ready
- wait for Plano gateway to be ready
- start e2e tests (using uv)
- runs llm gateway tests for llm routing
- runs prompt gateway tests to test function calling, parameter gathering and summarization
- cleanup
- stops Plano gateway
- stops model server
- stops weather_forecast demo
How to run
To run locally make sure that following requirements are met.
Requirements
- Python 3.10+
- uv
- Docker
Running tests locally
sh run_e2e_test.sh