tests/backends/providers/test_socks_proxy.py
Rama main · réplica de lectura del repositorio original.
"""A SOCKS proxy in the environment (``ALL_PROXY=socks5://…``, as Clash and
similar tools set it) does not stop a model adapter from starting: httpx
needs ``socksio`` for it, which noeta's ``httpx[socks]`` brings."""
from __future__ import annotations
from collections.abc import Callable
from typing import Any
import pytest
from noeta.backends.providers.anthropic import AnthropicProvider
from noeta.backends.providers.openai_compat import OpenAICompatProvider
from noeta.backends.providers.openai_responses import OpenAIResponsesProvider
URL = "https://models.example.com"
ADAPTERS: list[Callable[[], Any]] = [
lambda: AnthropicProvider("key", base_url=URL),
lambda: OpenAICompatProvider(URL, "key"),
lambda: OpenAIResponsesProvider(URL, "key"),
]
@pytest.mark.parametrize("make", ADAPTERS, ids=["anthropic", "openai_compat", "responses"])
async def test_an_adapter_starts_behind_a_socks_proxy(
make: Callable[[], Any], monkeypatch: pytest.MonkeyPatch) -> None:
for name in ("ALL_PROXY", "all_proxy"):
monkeypatch.setenv(name, "socks5://127.0.0.1:7897")
provider = make()
await provider._client.aclose()