"""Verify PROVIDERS is defined in src.ai_client (the source of truth) and re-exported from src.models (backward compat shim). Per the follow-up track's Naming Convention (HARD RULE), PROVIDERS lives in src/ai_client.py. src/models.py keeps a re-export shim so existing import sites don't break. """ from __future__ import annotations import src.models as models import src.ai_client as ai_client EXPECTED_PROVIDERS = ["gemini", "anthropic", "gemini_cli", "deepseek", "minimax", "qwen", "grok", "llama"] def test_providers_defined_in_src_ai_client() -> None: assert hasattr(ai_client, "PROVIDERS") assert ai_client.PROVIDERS == EXPECTED_PROVIDERS def test_providers_reexported_from_src_models() -> None: assert hasattr(models, "PROVIDERS") assert models.PROVIDERS == EXPECTED_PROVIDERS def test_providers_same_object_in_both_modules() -> None: assert models.PROVIDERS is ai_client.PROVIDERS