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}"