fix: validate /model values before saving

This commit is contained in:
stablegenius49 2026-03-07 19:56:48 -08:00 committed by teknium1
parent 932d596466
commit 9d3a44e0e8
4 changed files with 330 additions and 11 deletions

View file

@ -0,0 +1,43 @@
"""Tests for provider-aware `/model` validation."""
import os
import sys
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", ".."))
from hermes_cli.models import validate_requested_model
class TestValidateRequestedModel:
def test_known_openrouter_model_can_be_saved(self):
result = validate_requested_model("anthropic/claude-opus-4.6", "openrouter")
assert result["accepted"] is True
assert result["persist"] is True
assert result["recognized"] is True
assert result["message"] is None
def test_openrouter_requires_provider_model_format(self):
result = validate_requested_model("claude-opus-4.6", "openrouter")
assert result["accepted"] is False
assert result["persist"] is False
assert "provider/model" in result["message"]
def test_unknown_codex_model_is_session_only(self):
result = validate_requested_model("totally-made-up", "openai-codex")
assert result["accepted"] is True
assert result["persist"] is False
assert "OpenAI Codex" in result["message"]
def test_custom_endpoint_allows_plain_model_ids(self):
result = validate_requested_model(
"gpt-4",
"openrouter",
base_url="http://localhost:11434/v1",
)
assert result["accepted"] is True
assert result["persist"] is True
assert result["message"] is None