headroom/tests/test_proxy/test_compression_timeout_config.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

42 lines
1.4 KiB
Python
Raw Normal View History

from __future__ import annotations
import importlib
import os
import pytest
import headroom.proxy.helpers as helpers
@pytest.fixture(autouse=True)
def _restore_default_timeout():
"""Each test reloads helpers under a chosen env; reset to the default afterwards
so the reloaded module constant doesn't leak into the rest of the suite."""
yield
os.environ.pop("HEADROOM_COMPRESSION_TIMEOUT_SECONDS", None)
importlib.reload(helpers)
def test_default_timeout_is_30(monkeypatch: pytest.MonkeyPatch) -> None:
monkeypatch.delenv("HEADROOM_COMPRESSION_TIMEOUT_SECONDS", raising=False)
importlib.reload(helpers)
assert helpers.COMPRESSION_TIMEOUT_SECONDS == 30.0
def test_env_overrides_timeout(monkeypatch: pytest.MonkeyPatch) -> None:
monkeypatch.setenv("HEADROOM_COMPRESSION_TIMEOUT_SECONDS", "75")
importlib.reload(helpers)
assert helpers.COMPRESSION_TIMEOUT_SECONDS == 75.0
def test_fractional_timeout(monkeypatch: pytest.MonkeyPatch) -> None:
monkeypatch.setenv("HEADROOM_COMPRESSION_TIMEOUT_SECONDS", "12.5")
importlib.reload(helpers)
assert helpers.COMPRESSION_TIMEOUT_SECONDS == 12.5
def test_bad_env_falls_back_to_default(monkeypatch: pytest.MonkeyPatch) -> None:
monkeypatch.setenv("HEADROOM_COMPRESSION_TIMEOUT_SECONDS", "not-a-number")
importlib.reload(helpers)
assert helpers.COMPRESSION_TIMEOUT_SECONDS == 30.0