"""Phase 10 invariant tests (RED). Site 1 (L1594): _list_gemini_models_result helper must exist + return Result[list[str]]. """ import sys sys.path.insert(0, ".") from src.result_types import Result, ErrorInfo def test_phase10_site1_list_gemini_models_result_exists(): import src.ai_client assert hasattr(src.ai_client, "_list_gemini_models_result"), \ "_list_gemini_models_result helper missing from src.ai_client" def test_phase10_site1_list_gemini_models_result_returns_result(): """The helper must return a Result[list[str]].""" import src.ai_client fn = getattr(src.ai_client, "_list_gemini_models_result", None) assert fn is not None import inspect sig = inspect.signature(fn) # Should have a return annotation of Result assert "Result" in str(sig.return_annotation), \ f"_list_gemini_models_result return annotation must be Result, got {sig.return_annotation}" def test_phase10_site1_list_gemini_models_legacy_obliterated(): """Legacy _list_gemini_models wrapper OBLITERATED (cruft-removal Phase 4).""" import src.ai_client assert not hasattr(src.ai_client, "_list_gemini_models"), ( "_list_gemini_models legacy wrapper must be DELETED; " "callers must use _list_gemini_models_result(...).ok directly." )