Ctrl K
ComunidadGuías…

tests/backends/providers/test_socks_proxy.py

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
"""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()