mirror of
https://github.com/trushildhokiya/allininx-2.git
synced 2025-03-15 20:18:40 +00:00
46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
import pytest
|
|
from openai.error import InvalidRequestError, ServiceUnavailableError
|
|
|
|
from reworkd_platform.schemas.agent import ModelSettings
|
|
from reworkd_platform.web.api.agent.helpers import openai_error_handler
|
|
from reworkd_platform.web.api.errors import OpenAIError
|
|
|
|
|
|
async def act(*args, settings: ModelSettings = ModelSettings(), **kwargs):
|
|
return await openai_error_handler(*args, settings=settings, **kwargs)
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_service_unavailable_error():
|
|
async def mock_service_unavailable_error():
|
|
raise ServiceUnavailableError("Service Unavailable")
|
|
|
|
with pytest.raises(OpenAIError):
|
|
await act(mock_service_unavailable_error)
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
@pytest.mark.parametrize(
|
|
"settings,should_log",
|
|
[
|
|
(ModelSettings(custom_api_key="xyz"), False),
|
|
(ModelSettings(custom_api_key=None), True),
|
|
],
|
|
)
|
|
async def test_should_log(settings, should_log):
|
|
async def mock_invalid_request_error_model_access():
|
|
raise InvalidRequestError(
|
|
"The model: xyz does not exist or you do not have access to it.",
|
|
param="model",
|
|
)
|
|
|
|
with pytest.raises(Exception) as exc_info:
|
|
await openai_error_handler(
|
|
mock_invalid_request_error_model_access, settings=settings
|
|
)
|
|
|
|
assert isinstance(exc_info.value, OpenAIError)
|
|
error: OpenAIError = exc_info.value
|
|
|
|
assert error.should_log == should_log
|