mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-10 22:41:41 +00:00
test(e2e): dedupe lite env setup
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
parent
2ece873538
commit
6e71b90a88
2 changed files with 14 additions and 19 deletions
|
|
@ -2,8 +2,6 @@
|
|||
# PROMOTION NOTE: the auth cluster (~14 cells) is a candidate to promote to its own module once stable.
|
||||
- {id: other.auth.master_key.valid_allows, module: other, tier: P0, area: auth, assertions: [valid_allows], source: "user_api_key_auth.py:1569-1588", rationale: "Master key authenticates; timing-safe compare"}
|
||||
- {id: other.auth.master_key.invalid_denied, module: other, tier: P0, area: auth, assertions: [invalid_denied], source: "user_api_key_auth.py:1580", rationale: "Invalid master key rejected"}
|
||||
- {id: other.cli.model_cost_map.version_skips_fetch, module: other, tier: P1, area: cli, assertions: [version_skips_fetch], source: "get_model_cost_map.py _is_cli_process / LIT-7385", fail_before_fix: proven, rationale: "The lite version command succeeds without requesting the remote model-cost map"}
|
||||
- {id: other.cli.model_cost_map.models_list_skips_fetch, module: other, tier: P1, area: cli, assertions: [models_list_skips_fetch], source: "get_model_cost_map.py _is_cli_process / LIT-7385", fail_before_fix: proven, rationale: "The lite models list command uses the proxy without requesting the remote model-cost map"}
|
||||
- {id: other.auth.llm_chat.missing_header_denied, module: other, tier: P0, area: auth, assertions: [missing_header_denied], source: "vendor testing strategy §11.1 / LIT-4778", rationale: "Chat with no Authorization header is 401/403"}
|
||||
- {id: other.auth.llm_chat.invalid_bearer_denied, module: other, tier: P0, area: auth, assertions: [invalid_bearer_denied], source: "vendor testing strategy §11.1 / LIT-4778", rationale: "Bearer invalid_token on chat is 401/403"}
|
||||
- {id: other.auth.llm_chat.no_bearer_prefix_denied, module: other, tier: P0, area: auth, assertions: [no_bearer_prefix_denied], source: "vendor testing strategy §11.1 / LIT-4778", rationale: "Token without Bearer scheme on chat is 401/403"}
|
||||
|
|
@ -50,3 +48,5 @@
|
|||
- {id: other.a2a.message_send.bridge_invokes, module: other, tier: P1, area: a2a, assertions: [bridge_invokes], source: "a2a_protocol/litellm_completion_bridge/handler.py", rationale: "A2A message/send routes through the completion bridge to a real provider and logs an asend_message spend row"}
|
||||
- {id: other.a2a.version.serves_pinned_0_3, module: other, tier: P1, area: a2a, assertions: [serves_pinned_0_3], source: "agent_endpoints/a2a_endpoints.py _served_version", rationale: "An agent pinning 0.3 returns the flat 0.3 message shape (parts on the result)"}
|
||||
- {id: other.a2a.version.serves_pinned_1_0, module: other, tier: P1, area: a2a, assertions: [serves_pinned_1_0], source: "agent_endpoints/a2a_endpoints.py _served_version", rationale: "An agent pinning 1.0 returns the nested 1.0 message shape (result.message with ROLE_AGENT)"}
|
||||
- {id: other.cli.model_cost_map.version_skips_fetch, module: other, tier: P1, area: cli, assertions: [version_skips_fetch], source: "get_model_cost_map.py _is_cli_process / LIT-7385", fail_before_fix: proven, rationale: "The lite version command succeeds without requesting the remote model-cost map"}
|
||||
- {id: other.cli.model_cost_map.models_list_skips_fetch, module: other, tier: P1, area: cli, assertions: [models_list_skips_fetch], source: "get_model_cost_map.py _is_cli_process / LIT-7385", fail_before_fix: proven, rationale: "The lite models list command uses the proxy without requesting the remote model-cost map"}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,16 @@ def _start_cost_map_server(request_log: Path) -> tuple[ThreadingHTTPServer, thre
|
|||
return server, thread
|
||||
|
||||
|
||||
def _lite_env(server: ThreadingHTTPServer, api_key: str | None) -> dict[str, str]:
|
||||
base_env: Final = {key: value for key, value in os.environ.items() if key != "LITELLM_LOCAL_MODEL_COST_MAP"}
|
||||
return {
|
||||
**base_env,
|
||||
"LITELLM_MODEL_COST_MAP_URL": f"http://127.0.0.1:{server.server_port}/map.json",
|
||||
"LITELLM_PROXY_URL": PROXY_BASE_URL,
|
||||
**({"LITELLM_PROXY_API_KEY": api_key} if api_key is not None else {}),
|
||||
}
|
||||
|
||||
|
||||
def _run_lite(
|
||||
args: tuple[str, ...],
|
||||
server: ThreadingHTTPServer,
|
||||
|
|
@ -66,14 +76,7 @@ class TestLiteCliCostMapFetch:
|
|||
def test_lite_version_makes_no_cost_map_request(self, tmp_path: Path) -> None:
|
||||
request_log: Final = tmp_path / "requests.log"
|
||||
server, thread = _start_cost_map_server(request_log)
|
||||
source_root: Final = str(Path(__file__).resolve().parents[3])
|
||||
pythonpath: Final = os.pathsep.join(filter(None, (source_root, os.environ.get("PYTHONPATH"))))
|
||||
env: Final = {
|
||||
**{key: value for key, value in os.environ.items() if key != "LITELLM_LOCAL_MODEL_COST_MAP"},
|
||||
"PYTHONPATH": pythonpath,
|
||||
"LITELLM_MODEL_COST_MAP_URL": f"http://127.0.0.1:{server.server_port}/map.json",
|
||||
"LITELLM_PROXY_URL": PROXY_BASE_URL,
|
||||
}
|
||||
env: Final = _lite_env(server, None)
|
||||
try:
|
||||
result: Final = _run_lite(("--version",), server, env)
|
||||
finally:
|
||||
|
|
@ -89,15 +92,7 @@ class TestLiteCliCostMapFetch:
|
|||
assert model_names
|
||||
request_log: Final = tmp_path / "requests.log"
|
||||
server, thread = _start_cost_map_server(request_log)
|
||||
source_root: Final = str(Path(__file__).resolve().parents[3])
|
||||
pythonpath: Final = os.pathsep.join(filter(None, (source_root, os.environ.get("PYTHONPATH"))))
|
||||
env: Final = {
|
||||
**{key: value for key, value in os.environ.items() if key != "LITELLM_LOCAL_MODEL_COST_MAP"},
|
||||
"PYTHONPATH": pythonpath,
|
||||
"LITELLM_MODEL_COST_MAP_URL": f"http://127.0.0.1:{server.server_port}/map.json",
|
||||
"LITELLM_PROXY_URL": PROXY_BASE_URL,
|
||||
"LITELLM_PROXY_API_KEY": MASTER_KEY,
|
||||
}
|
||||
env: Final = _lite_env(server, MASTER_KEY)
|
||||
try:
|
||||
result: Final = _run_lite(("models", "list"), server, env)
|
||||
finally:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue