Files
AstrBot/tests/test_request_retry.py
Weilong Liao dd36979eca feat: implement request retry mechanism for provider requests (#8893)
* feat: implement request retry mechanism for provider requests

* feat: add request max retries configuration and implement retry logic for provider requests

* feat: update fake_query function to accept request_max_retries parameter

* feat: remove retry_rate_limits from provider request calls
2026-06-19 17:13:40 +08:00

28 lines
751 B
Python

import httpx
import pytest
import astrbot.core.provider.sources.request_retry as request_retry
from astrbot.core.provider.sources.request_retry import retry_provider_request
@pytest.mark.asyncio
async def test_retry_provider_request_uses_configured_max_retries(monkeypatch):
monkeypatch.setattr(request_retry, "REQUEST_RETRY_WAIT_MIN_S", 0)
monkeypatch.setattr(request_retry, "REQUEST_RETRY_WAIT_MAX_S", 0)
calls = 0
async def request():
nonlocal calls
calls += 1
raise httpx.ConnectError("temporary connection failure")
with pytest.raises(httpx.ConnectError):
await retry_provider_request(
"Test",
request,
max_attempts=2,
)
assert calls == 2