headroom / tests /test_proxy /test_proxy_telemetry_env.py
tudragon154203
fix: route count_tokens to api.anthropic.com, not proxy base_url
0adb431
"""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"