mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-25 00:51:20 +00:00
73 lines
2.4 KiB
Python
73 lines
2.4 KiB
Python
"""Regression tests for the /model codex alias.
|
|
|
|
The short alias used to point at a nonexistent openai/codex catalog entry,
|
|
which made `/model codex` fail even though Codex models are available.
|
|
"""
|
|
|
|
from unittest.mock import patch
|
|
|
|
from hermes_cli.model_switch import switch_model
|
|
|
|
|
|
_MOCK_VALIDATION = {
|
|
"accepted": True,
|
|
"persist": True,
|
|
"recognized": True,
|
|
"message": None,
|
|
}
|
|
|
|
|
|
@patch("hermes_cli.model_switch.get_model_info", return_value=None)
|
|
@patch("hermes_cli.model_switch.get_model_capabilities", return_value=None)
|
|
@patch("hermes_cli.models.detect_provider_for_model", return_value=None)
|
|
@patch("hermes_cli.models.validate_requested_model", return_value=_MOCK_VALIDATION)
|
|
def test_codex_alias_resolves_on_openai_codex(
|
|
_validate,
|
|
_detect,
|
|
_capabilities,
|
|
_info,
|
|
):
|
|
"""/model codex should resolve to a real Codex model on openai-codex."""
|
|
with patch(
|
|
"hermes_cli.model_switch.list_provider_models",
|
|
return_value=["gpt-5.4-mini", "gpt-5.4", "gpt-5.3-codex", "gpt-5.2-codex"],
|
|
):
|
|
result = switch_model(
|
|
raw_input="codex",
|
|
current_provider="openai-codex",
|
|
current_model="gpt-5.4",
|
|
current_base_url="https://chatgpt.com/backend-api/codex",
|
|
current_api_key="***",
|
|
)
|
|
|
|
assert result.success is True
|
|
assert result.target_provider == "openai-codex"
|
|
assert result.new_model == "gpt-5.3-codex"
|
|
|
|
|
|
@patch("hermes_cli.model_switch.get_model_info", return_value=None)
|
|
@patch("hermes_cli.model_switch.get_model_capabilities", return_value=None)
|
|
@patch("hermes_cli.models.detect_provider_for_model", return_value=None)
|
|
@patch("hermes_cli.models.validate_requested_model", return_value=_MOCK_VALIDATION)
|
|
def test_codex_alias_resolves_on_openrouter(
|
|
_validate,
|
|
_detect,
|
|
_capabilities,
|
|
_info,
|
|
):
|
|
"""The alias should also work when switching through openrouter."""
|
|
with patch(
|
|
"hermes_cli.model_switch.list_provider_models",
|
|
return_value=["openai/gpt-5.4", "openai/gpt-5.4-mini", "openai/gpt-5.3-codex"],
|
|
):
|
|
result = switch_model(
|
|
raw_input="codex",
|
|
current_provider="openrouter",
|
|
current_model="openai/gpt-5.4",
|
|
current_base_url="https://openrouter.ai/api/v1",
|
|
current_api_key="***",
|
|
)
|
|
|
|
assert result.success is True
|
|
assert result.target_provider == "openrouter"
|
|
assert result.new_model == "openai/gpt-5.3-codex"
|