mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-04-06 11:13:38 +00:00
43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
from types import SimpleNamespace
|
|
|
|
from nanobot.providers.anthropic_provider import AnthropicProvider
|
|
from nanobot.providers.azure_openai_provider import AzureOpenAIProvider
|
|
from nanobot.providers.openai_compat_provider import OpenAICompatProvider
|
|
|
|
|
|
def test_openai_compat_error_captures_retry_after_from_headers() -> None:
|
|
err = Exception("boom")
|
|
err.doc = None
|
|
err.response = SimpleNamespace(
|
|
text='{"error":{"message":"Rate limit exceeded"}}',
|
|
headers={"Retry-After": "20"},
|
|
)
|
|
|
|
response = OpenAICompatProvider._handle_error(err)
|
|
|
|
assert response.retry_after == 20.0
|
|
|
|
|
|
def test_azure_openai_error_captures_retry_after_from_headers() -> None:
|
|
err = Exception("boom")
|
|
err.body = {"message": "Rate limit exceeded"}
|
|
err.response = SimpleNamespace(
|
|
text='{"error":{"message":"Rate limit exceeded"}}',
|
|
headers={"Retry-After": "20"},
|
|
)
|
|
|
|
response = AzureOpenAIProvider._handle_error(err)
|
|
|
|
assert response.retry_after == 20.0
|
|
|
|
|
|
def test_anthropic_error_captures_retry_after_from_headers() -> None:
|
|
err = Exception("boom")
|
|
err.response = SimpleNamespace(
|
|
headers={"Retry-After": "20"},
|
|
)
|
|
|
|
response = AnthropicProvider._handle_error(err)
|
|
|
|
assert response.retry_after == 20.0
|