SurfSense/surfsense_backend/tests/unit/utils/proxy/test_registry.py

37 lines
1.3 KiB
Python
Raw Normal View History

"""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)