mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-12 03:48:56 +00:00
* perf(ci): distribute unit cases and reuse security sweep connections * revert(ci): reject first speed trial after new failures * perf(ci): avoid repeated test discovery and parsing * perf(ci): isolate parallel security workers * revert(ci): restore measured security execution isolation * perf(tests): reuse source scans and deduplicate cache cleanup * perf(ci): restore parallel security with safe log batching * test(ci): isolate fixture state and schema comparisons * test(ci): make schema and scheduler fixtures deterministic * test(ci): drain queued logging before fixture teardown * test(ci): preserve logging delivery without idle worker restarts * test(ci): keep guardrail sinks available during parallel bursts * test(ci): isolate full proxy lifecycle from gateway imports * test(ci): preserve first failure responses and sweep evidence * test(ci): restore documentation URL settings between cases * test(ci): isolate open MCP tools in private gateways * test(ci): group private MCP cases and handle exited workers * test(ci): retain proxy exits and MCP failure details * test(ci): repair merge interactions with main Key the schema shard's full clone on artifact-name, since main removed the unit-flag input. Give each owned Redis its own log file again. Hand the realtime transcription tests main added a logging object whose dispatch handlers are awaitable, so the per-test logging drain no longer waits on a MagicMock task forever * perf(ci): shard owned integration cases and close lifecycle leaks * fix(ci): qualify shard execution and harden interrupted cleanup * fix(ci): bound worker supervision and own fault traffic * perf(ci): reuse unparametrized fixtures across bounded case groups * fix(ci): preserve boot fault allowances and complete exit records * test(ci): tolerate startup retries and retain readiness details * perf(ci): balance integration shards by recorded duration * fix(ci): load migration database helpers only for workers
31 lines
989 B
Python
31 lines
989 B
Python
from __future__ import annotations
|
|
|
|
import os
|
|
from collections.abc import Iterator
|
|
from typing import Final
|
|
from urllib.parse import urlsplit
|
|
|
|
import pytest
|
|
|
|
|
|
@pytest.fixture(scope="session", autouse=True)
|
|
def worker_database() -> Iterator[None]:
|
|
if not os.environ.get("PYTEST_XDIST_WORKER") or "DATABASE_URL" not in os.environ:
|
|
yield
|
|
return
|
|
from tests.integration._support.database import read_rows, scratch_database
|
|
|
|
admin_url: Final = os.environ["DATABASE_URL"]
|
|
with scratch_database() as database, pytest.MonkeyPatch.context() as environment:
|
|
environment.setenv("DATABASE_URL", database)
|
|
environment.delenv("DIRECT_URL", raising=False)
|
|
environment.delenv("DATABASE_URL_READ_REPLICA", raising=False)
|
|
yield
|
|
assert (
|
|
read_rows(
|
|
"SELECT datname FROM pg_database WHERE datname = %s",
|
|
(urlsplit(database).path.lstrip("/"),),
|
|
database_url=admin_url,
|
|
)
|
|
== []
|
|
)
|