Spaces:
Running
Running
| """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" | |