Files
srbhr--resume-matcher/apps/backend/tests/unit/test_settings_timeout.py
T
wehub-resource-sync 5bdf4cc89a
Publish Docker Image / publish (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:39:36 +08:00

41 lines
1.7 KiB
Python

"""Configurable, bounded request timeout (issue #776).
The improve/tailor request timeout must be env-configurable (slow local LLMs
need more than 240s) but bounded so a stuck request can't hold a worker
indefinitely, and robust to blank/garbage env values (which must not crash
startup).
"""
from app.config import Settings
class TestRequestTimeoutSetting:
def test_default_is_240(self):
assert Settings.model_fields["request_timeout_seconds"].default == 240
def test_clamps_below_minimum(self):
assert Settings(request_timeout_seconds=5).request_timeout_seconds == 30
def test_clamps_above_maximum(self):
assert Settings(request_timeout_seconds=99999).request_timeout_seconds == 1800
def test_accepts_in_range(self):
assert Settings(request_timeout_seconds=900).request_timeout_seconds == 900
def test_blank_string_falls_back_to_default(self):
# A blank env var (REQUEST_TIMEOUT_SECONDS=) must not crash; defaults to 240.
assert Settings(request_timeout_seconds="").request_timeout_seconds == 240
def test_garbage_falls_back_to_default(self):
assert Settings(request_timeout_seconds="abc").request_timeout_seconds == 240
def test_float_string_is_coerced(self):
assert Settings(request_timeout_seconds="300.0").request_timeout_seconds == 300
def test_infinity_falls_back_to_default(self):
# int(float("inf")) raises OverflowError — must not crash startup (PR #833 review).
assert Settings(request_timeout_seconds="inf").request_timeout_seconds == 240
def test_nan_falls_back_to_default(self):
assert Settings(request_timeout_seconds="nan").request_timeout_seconds == 240