Spaces:
Running
Running
File size: 2,042 Bytes
9f37321 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | """Tests for proxy telemetry environment variable handling."""
from unittest.mock import patch
import pytest
pytest.importorskip("fastapi")
from headroom.proxy.server import ProxyConfig, create_app
class TestProxyTelemetrySDKEnv:
"""Test HEADROOM_SDK handling when the proxy builds telemetry beacons."""
def test_proxy_telemetry_sdk_defaults_to_proxy(self, monkeypatch):
"""Telemetry beacon uses the default SDK label when env var is unset."""
monkeypatch.delenv("HEADROOM_SDK", raising=False)
with patch("headroom.telemetry.beacon.TelemetryBeacon") as mock_beacon:
create_app(
ProxyConfig(
cache_enabled=False,
rate_limit_enabled=False,
cost_tracking_enabled=False,
)
)
assert mock_beacon.call_args.kwargs["sdk"] == "proxy"
def test_proxy_telemetry_sdk_uses_env_override(self, monkeypatch):
"""Telemetry beacon uses HEADROOM_SDK when it is non-empty."""
monkeypatch.setenv("HEADROOM_SDK", "headroom-app")
with patch("headroom.telemetry.beacon.TelemetryBeacon") as mock_beacon:
create_app(
ProxyConfig(
cache_enabled=False,
rate_limit_enabled=False,
cost_tracking_enabled=False,
)
)
assert mock_beacon.call_args.kwargs["sdk"] == "headroom-app"
def test_proxy_telemetry_sdk_empty_env_falls_back_to_proxy(self, monkeypatch):
"""Telemetry beacon falls back to proxy when HEADROOM_SDK is blank."""
monkeypatch.setenv("HEADROOM_SDK", " ")
with patch("headroom.telemetry.beacon.TelemetryBeacon") as mock_beacon:
create_app(
ProxyConfig(
cache_enabled=False,
rate_limit_enabled=False,
cost_tracking_enabled=False,
)
)
assert mock_beacon.call_args.kwargs["sdk"] == "proxy"
|