feat: enhance model support by adding GPT-5.1 to .gitignore and updating cassette maintenance documentation for dual-model testing

This commit is contained in:
Bjorn Melin
2025-11-14 01:40:49 -07:00
parent 8e9aa2304d
commit f713d8a354
13 changed files with 255 additions and 34 deletions

View File

@@ -50,6 +50,9 @@ class TestOpenAIProvider:
assert provider.validate_model_name("o4-mini") is True
assert provider.validate_model_name("gpt-5") is True
assert provider.validate_model_name("gpt-5-mini") is True
assert provider.validate_model_name("gpt-5.1") is True
assert provider.validate_model_name("gpt-5.1-codex") is True
assert provider.validate_model_name("gpt-5.1-codex-mini") is True
# Test valid aliases
assert provider.validate_model_name("mini") is True
@@ -59,6 +62,9 @@ class TestOpenAIProvider:
assert provider.validate_model_name("gpt5") is True
assert provider.validate_model_name("gpt5-mini") is True
assert provider.validate_model_name("gpt5mini") is True
assert provider.validate_model_name("gpt5.1") is True
assert provider.validate_model_name("gpt5.1-codex") is True
assert provider.validate_model_name("codex-mini") is True
# Test invalid model
assert provider.validate_model_name("invalid-model") is False
@@ -77,6 +83,9 @@ class TestOpenAIProvider:
assert provider._resolve_model_name("gpt5") == "gpt-5"
assert provider._resolve_model_name("gpt5-mini") == "gpt-5-mini"
assert provider._resolve_model_name("gpt5mini") == "gpt-5-mini"
assert provider._resolve_model_name("gpt5.1") == "gpt-5.1"
assert provider._resolve_model_name("gpt5.1-codex") == "gpt-5.1-codex"
assert provider._resolve_model_name("codex-mini") == "gpt-5.1-codex-mini"
# Test full name passthrough
assert provider._resolve_model_name("o3") == "o3"
@@ -86,6 +95,9 @@ class TestOpenAIProvider:
assert provider._resolve_model_name("o4-mini") == "o4-mini"
assert provider._resolve_model_name("gpt-5") == "gpt-5"
assert provider._resolve_model_name("gpt-5-mini") == "gpt-5-mini"
assert provider._resolve_model_name("gpt-5.1") == "gpt-5.1"
assert provider._resolve_model_name("gpt-5.1-codex") == "gpt-5.1-codex"
assert provider._resolve_model_name("gpt-5.1-codex-mini") == "gpt-5.1-codex-mini"
def test_get_capabilities_o3(self):
"""Test getting model capabilities for O3."""
@@ -146,6 +158,36 @@ class TestOpenAIProvider:
assert capabilities.supports_function_calling is True
assert capabilities.supports_temperature is True
def test_get_capabilities_gpt51(self):
"""Test GPT-5.1 capabilities reflect new metadata."""
provider = OpenAIModelProvider("test-key")
capabilities = provider.get_capabilities("gpt-5.1")
assert capabilities.model_name == "gpt-5.1"
assert capabilities.supports_streaming is True
assert capabilities.supports_function_calling is True
assert capabilities.supports_json_mode is True
assert capabilities.allow_code_generation is True
def test_get_capabilities_gpt51_codex(self):
"""Test GPT-5.1 Codex is responses-only and non-streaming."""
provider = OpenAIModelProvider("test-key")
capabilities = provider.get_capabilities("gpt-5.1-codex")
assert capabilities.model_name == "gpt-5.1-codex"
assert capabilities.supports_streaming is False
assert capabilities.use_openai_response_api is True
assert capabilities.allow_code_generation is True
def test_get_capabilities_gpt51_codex_mini(self):
"""Test GPT-5.1 Codex mini exposes streaming and code generation."""
provider = OpenAIModelProvider("test-key")
capabilities = provider.get_capabilities("gpt-5.1-codex-mini")
assert capabilities.model_name == "gpt-5.1-codex-mini"
assert capabilities.supports_streaming is True
assert capabilities.allow_code_generation is True
@patch("providers.openai_compatible.OpenAI")
def test_generate_content_resolves_alias_before_api_call(self, mock_openai_class):
"""Test that generate_content resolves aliases before making API calls.