SurfSense/surfsense_backend/tests/unit/utils/proxy/test_registry.py
DESKTOP-RTLN3BA\$punk 701f888b9e feat(proxy): refactor proxy configuration and add DataImpulse provider
- Updated proxy configuration in `.env.example` files to use `PROXY_URL` and `PROXY_URLS` instead of `CUSTOM_PROXY_URL` and `CUSTOM_PROXY_URLS`.
- Introduced `DataImpulseProvider` for proxy management, replacing the deprecated `AnonymousProxiesProvider`.
- Enhanced documentation to reflect changes in proxy setup and usage.
- Adjusted related code in the proxy registry and configuration files to support the new provider structure.
2026-07-04 17:18:40 -07:00

36 lines
1.3 KiB
Python

"""Unit tests for proxy provider selection.
``PROXY_PROVIDER`` selects the single app-wide provider; ``custom`` (the default)
and ``dataimpulse`` are registered, and unknown values still warn and fall back
to the default.
"""
import pytest
from app.config import Config
from app.utils.proxy import registry
from app.utils.proxy.providers.custom import CustomProxyProvider
from app.utils.proxy.providers.dataimpulse import DataImpulseProvider
pytestmark = pytest.mark.unit
@pytest.fixture(autouse=True)
def _reset_active_provider(monkeypatch: pytest.MonkeyPatch) -> None:
"""Clear the process-wide provider cache so each test resolves fresh."""
monkeypatch.setattr(registry, "_active_provider", None)
def test_resolves_custom(monkeypatch: pytest.MonkeyPatch) -> None:
monkeypatch.setattr(Config, "PROXY_PROVIDER", "custom")
assert isinstance(registry.get_active_provider(), CustomProxyProvider)
def test_resolves_dataimpulse(monkeypatch: pytest.MonkeyPatch) -> None:
monkeypatch.setattr(Config, "PROXY_PROVIDER", "dataimpulse")
assert isinstance(registry.get_active_provider(), DataImpulseProvider)
def test_unknown_falls_back_to_default(monkeypatch: pytest.MonkeyPatch) -> None:
monkeypatch.setattr(Config, "PROXY_PROVIDER", "does_not_exist")
assert isinstance(registry.get_active_provider(), CustomProxyProvider)