mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-16 04:29:31 +00:00
* test(integration): wait for customer spend rows and use owned OpenRouter cost * ci: isolate integration workers and clean up resources after crashes * docs: describe isolated extensions workers and shard census * fix(ci): restore integration service and fixture guarantees * fix(integration): preserve replay IDs and native route fixtures * fix(tests): scope integration harness imports to each unit case * fix(ci): preserve fixtures and wait for owned workers * fix(ci): isolate nested runs and telemetry cases * fix(ci): make worker readiness and fault tests deterministic * chore(ci): drop MCP fixture repair already covered by main * chore(ci): keep the local catalog fix from main --------- Co-authored-by: yuneng <yuneng@berri.ai>
32 lines
1 KiB
Python
32 lines
1 KiB
Python
import os
|
|
from contextlib import ExitStack
|
|
from typing import Final
|
|
|
|
import httpx
|
|
from integration._support.client import Gateway
|
|
from integration._support.workers import wait_for_services
|
|
from redis import Redis
|
|
|
|
|
|
def main() -> None:
|
|
primary: Final = os.environ["INTEGRATION_PROXY_URL"]
|
|
peer: Final = os.environ.get("INTEGRATION_PEER_URL")
|
|
urls: Final = (primary, peer) if peer else (primary,)
|
|
upstream: Final = os.environ["INTEGRATION_UPSTREAM_URL"]
|
|
with ExitStack() as stack:
|
|
proxies: Final = tuple(
|
|
Gateway(
|
|
stack.enter_context(httpx.Client(base_url=url, trust_env=False, timeout=2)),
|
|
os.environ["INTEGRATION_MASTER_KEY"],
|
|
upstream,
|
|
)
|
|
for url in urls
|
|
)
|
|
cache: Final = stack.enter_context(
|
|
Redis(host=os.environ["REDIS_HOST"], port=int(os.environ["REDIS_PORT"]), socket_timeout=2)
|
|
)
|
|
wait_for_services(upstream, proxies, cache)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|