mirror of
https://github.com/katanemo/plano.git
synced 2026-05-04 13:23:00 +02:00
Introduce a new mock-based E2E test suite that uses pytest_httpserver to simulate LLM provider responses, eliminating the need for real API keys on PR builds. The mock tests cover model alias routing, protocol transformation (OpenAI↔Anthropic), Responses API passthrough/translation, streaming, tool calls, thinking mode, and multi-turn state management. CI changes: - Add mock-e2e-tests job (zero secrets, runs on every PR) - Gate all live E2E jobs to main pushes + nightly schedule - Scope secrets to only the keys each job actually needs - Add daily cron schedule for full live test coverage Also relaxes exact-match assertions in live e2e tests to structural checks (non-null, non-empty) since LLM output is non-deterministic. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| .vscode | ||
| common.py | ||
| common_scripts.sh | ||
| config_memory_state_v1_responses.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 | ||
| 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