From 7d780ccb705c2f4a76d160a6dcbf91cd2ab29338 Mon Sep 17 00:00:00 2001 From: Vadelma Date: Tue, 18 Aug 2026 06:05:11 -0700 Subject: [PATCH] test(codex): cover retained fallback models MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Taneli Mielikäinen --- tests/hermes_cli/test_codex_models.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/tests/hermes_cli/test_codex_models.py b/tests/hermes_cli/test_codex_models.py index 367f4df833..afd2a332b2 100644 --- a/tests/hermes_cli/test_codex_models.py +++ b/tests/hermes_cli/test_codex_models.py @@ -15,13 +15,25 @@ CHATGPT_REJECTED_CODEX_PRO_SLUGS = { } -def test_curated_codex_fallback_excludes_chatgpt_rejected_pro_slugs(): - """OAuth fallback must not offer slugs rejected by ChatGPT Codex.""" +def test_curated_codex_fallback_excludes_chatgpt_rejected_pro_slugs(monkeypatch): + """OAuth fallback retains real models but never synthesizes rejected ones.""" + retained_models = {"gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna"} template_models = {model for model, _fallbacks in _FORWARD_COMPAT_TEMPLATE_MODELS} + assert retained_models.issubset(DEFAULT_CODEX_MODELS) + assert retained_models.issubset(template_models) assert CHATGPT_REJECTED_CODEX_PRO_SLUGS.isdisjoint(DEFAULT_CODEX_MODELS) assert CHATGPT_REJECTED_CODEX_PRO_SLUGS.isdisjoint(template_models) + monkeypatch.setattr( + "hermes_cli.codex_models._fetch_models_from_api", + lambda access_token: ["gpt-5.5"], + ) + model_ids = get_codex_model_ids(access_token="codex-access-token") + + assert retained_models.issubset(model_ids) + assert CHATGPT_REJECTED_CODEX_PRO_SLUGS.isdisjoint(model_ids) +