| 1234567891011121314151617181920212223242526272829303132333435 |
- """Unit tests for model utility functions."""
- from agents.models.openai_chatcompletions import OpenAIChatCompletionsModel
- from agents.models.openai_responses import OpenAIResponsesModel
- from openai import AsyncOpenAI
- from agency_swarm.utils.model_utils import get_model_name, is_reasoning_model
- def test_is_reasoning_model_case_table() -> None:
- """Reasoning detection should stay stable across common model identifiers."""
- client = AsyncOpenAI(api_key="test")
- cases: list[tuple[str | OpenAIResponsesModel | None, bool]] = [
- ("o3", True),
- ("o4-mini", True),
- ("gpt-5.4", True),
- ("gpt-5.4-mini", True),
- (OpenAIResponsesModel(model="openai/gpt-5.4-mini", openai_client=client), True),
- ("gpt-4.1", False),
- (None, False),
- ("", False),
- ]
- for model_name, expected in cases:
- assert is_reasoning_model(model_name) is expected
- def test_get_model_name_from_openai_model_objects() -> None:
- """Model-name extraction should work for both Responses and Chat models."""
- client = AsyncOpenAI(api_key="test")
- cases = [
- OpenAIResponsesModel(model="gpt-5.4-mini", openai_client=client),
- OpenAIChatCompletionsModel(model="gpt-5.4-mini", openai_client=client),
- ]
- for model in cases:
- assert get_model_name(model) == "gpt-5.4-mini"
|