mirror of
https://github.com/BerriAI/litellm.git
synced 2026-11-01 07:03:02 +00:00
test(e2e): clean up Codex test keys even when setup fails, and fail runs where Codex exits with an error
This commit is contained in:
parent
a249b6a40d
commit
cff8ff9f69
2 changed files with 21 additions and 8 deletions
|
|
@ -1,6 +1,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from collections.abc import Iterator
|
||||
from dataclasses import dataclass
|
||||
from typing import Final
|
||||
|
||||
import pytest
|
||||
|
|
@ -8,23 +9,34 @@ from cli_harness.rate_limiter import get_default_limiter
|
|||
from codex.harness import CodexHarness, codex_harness
|
||||
from codex.setups import Deployment, ModelSetup
|
||||
from e2e_config import PROXY_BASE_URL, unique_marker
|
||||
from models import KeyGenerateBody
|
||||
from lifecycle import ResourceManager
|
||||
from proxy_client import ProxyClient
|
||||
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
class _Client:
|
||||
proxy: ProxyClient
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def client(proxy: ProxyClient) -> _Client:
|
||||
return _Client(proxy)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def setup(deployment: Deployment, proxy: ProxyClient) -> Iterator[ModelSetup]:
|
||||
def setup(deployment: Deployment, proxy: ProxyClient, resources: ResourceManager) -> ModelSetup:
|
||||
model: Final = f"e2e-codex-{unique_marker()}"
|
||||
model_id: Final = proxy.create_model(model, deployment.litellm_params, provider_live=True)
|
||||
yield ModelSetup(model=model, rate_bucket=deployment.rate_bucket)
|
||||
proxy.delete_model(model_id)
|
||||
resources.defer(lambda: proxy.delete_model(model_id))
|
||||
return ModelSetup(model=model, rate_bucket=deployment.rate_bucket)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def codex(setup: ModelSetup, proxy: ProxyClient) -> Iterator[CodexHarness]:
|
||||
key: Final = proxy.generate_key(KeyGenerateBody(models=[setup.model]))
|
||||
def codex(setup: ModelSetup, resources: ResourceManager) -> Iterator[CodexHarness]:
|
||||
with codex_harness(
|
||||
gateway=PROXY_BASE_URL, api_key=key, rate_bucket=setup.rate_bucket, limiter=get_default_limiter()
|
||||
gateway=PROXY_BASE_URL,
|
||||
api_key=resources.key(models=[setup.model], user_id=None),
|
||||
rate_bucket=setup.rate_bucket,
|
||||
limiter=get_default_limiter(),
|
||||
) as harness:
|
||||
yield harness
|
||||
proxy.delete_key(key)
|
||||
|
|
|
|||
|
|
@ -18,5 +18,6 @@ class TestCodexCommandRoundTrip:
|
|||
run: Final = codex.exec(
|
||||
"Run `cat secret.txt`, then reply with exactly what it printed.", model=setup.model, cwd=workspace
|
||||
)
|
||||
assert run.exit_code == 0, run
|
||||
assert any(marker in command.output for command in run.commands), run
|
||||
assert marker in run.answer, run
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue