From 93c83af1a014f128ab7f5ab7c5f84cc246b1d047 Mon Sep 17 00:00:00 2001 From: Bezalel Date: Wed, 8 Apr 2026 09:07:15 +0000 Subject: [PATCH] test(forge): add CI guard against duplicate provider model entries Adds a lightweight smoke test that fails when any provider's model list in _PROVIDER_MODELS contains duplicate entries. - Runs in <1s - Explicit regression guard for PR #225 kimi-coding duplicates - Closes #232 --- tests/test_provider_models_no_duplicates.py | 23 +++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 tests/test_provider_models_no_duplicates.py diff --git a/tests/test_provider_models_no_duplicates.py b/tests/test_provider_models_no_duplicates.py new file mode 100644 index 000000000..ecc987fd2 --- /dev/null +++ b/tests/test_provider_models_no_duplicates.py @@ -0,0 +1,23 @@ +"""Lightweight smoke test to ensure provider model catalogs contain no duplicate entries.""" + +from hermes_cli.models import _PROVIDER_MODELS + + +def test_provider_models_have_no_duplicates() -> None: + """Every provider's model list must contain unique model IDs.""" + failures = [] + for provider_id, models in _PROVIDER_MODELS.items(): + seen = set() + dups = [m for m in models if m in seen or seen.add(m)] + if dups: + failures.append(f" {provider_id}: duplicates {dups}") + if failures: + raise AssertionError( + "Duplicate model IDs found in _PROVIDER_MODELS:\n" + "\n".join(failures) + ) + + +def test_kimi_coding_no_duplicates() -> None: + """Explicit regression guard for PR #225.""" + models = _PROVIDER_MODELS.get("kimi-coding", []) + assert len(models) == len(set(models)), f"Duplicates in kimi-coding: {models}" -- 2.43.0