Files
devplacepy/tests/unit/services/devii/fetch/controller.py
T
retoor 7274cc1840
DevPlace CI / test (push) Failing after 45m54s
Party Hardy
2026-10-17 07:33:08 +02:00

42 lines
1.3 KiB
Python

# retoor <retoor@molodetz.nl>
from dataclasses import replace
from devplacepy.services.devii.config import load_settings
from devplacepy.services.devii.fetch.controller import MIN_FETCH_CHARS, FetchController
def _controller(ceiling):
return FetchController(replace(load_settings(), fetch_max_chars=ceiling))
def test_optional_cap_defaults_to_ceiling():
controller = _controller(2000)
assert controller._optional_cap(None, "a" * 5000) == "a" * 2000
def test_optional_cap_clamps_large_request_to_ceiling():
controller = _controller(2000)
assert controller._optional_cap(10**9, "b" * 5000) == "b" * 2000
def test_optional_cap_honors_smaller_request():
controller = _controller(2000)
assert controller._optional_cap(1500, "c" * 5000) == "c" * 1500
def test_optional_cap_floors_tiny_request():
controller = _controller(2000)
assert controller._optional_cap(10, "d" * 5000) == "d" * MIN_FETCH_CHARS
def test_optional_cap_invalid_request_falls_back_to_ceiling():
controller = _controller(2000)
assert controller._optional_cap("many", "e" * 5000) == "e" * 2000
def test_optional_cap_leaves_short_content_alone():
controller = _controller(2000)
assert controller._optional_cap(None, "short") == "short"
assert controller._optional_cap(1500, "short") == "short"