Private
Public Access
0
0
Files
manual_slop/tests/tier2/phase12_site4_test.py
T
ed c5a119d63f refactor(ai_client): obliterate 5 legacy model-list wrappers (Phase 4)
Phase 4 (5 of 9 cruft sites obliterated):

OBLITERATED wrappers:
1. _reread_file_items (4 callers in _send_gemini + _send_gemini_cli + 2 others)
2. _list_anthropic_models (1 caller in list_models)
3. _list_gemini_models (1 caller in list_models)
4. _extract_gemini_thoughts (1 caller in _send_gemini)
5. _list_minimax_models (2 callers in _set_minimax_provider_result + set_provider)

Migration: each caller now uses the _result sibling directly with .ok check
+ .data extraction. The Result[T] error context (structured ErrorInfo) is now
propagated instead of dropped. _send_gemini gets .data with explicit .ok check.

Updated tests to assert OBLITERATED state (5 sub-track 5 tests inverted from
'_legacy_preserved' to '_legacy_obliterated'):
- tests/test_baseline_result.py: test_phase9_redo_modules_import_cleanly
- tests/tier2/phase10_invariant_test.py: _list_gemini_models removed from list
- tests/tier2/phase10_site1_test.py: _legacy_unchanged -> _legacy_obliterated
- tests/tier2/phase11_invariant_test.py: _extract/_list_minimax moved to obliterated
- tests/tier2/phase11_sites78_test.py: _legacy_preserved -> _legacy_obliterated
- tests/tier2/phase12_invariant_test.py: _list_anthropic moved to obliterated
- tests/tier2/phase12_site4_test.py: _legacy_preserved -> _legacy_obliterated
- tests/test_gemini_thinking_format.py: helper uses _result directly
- tests/test_cruft_removal.py: 5 new obliterated-wrappers invariant tests

Test result: 122/122 pass (31 baseline + 16 heuristic + 9 cruft + 5 thinking + 61 tier2).
Audit gate: src/ai_client.py --strict exits 0 (no new violations introduced).
Wrapper count: 9 -> 3 (Phase 5-6 remaining: rag_engine 1, gui_2 2).
2026-06-20 20:01:25 -04:00

36 lines
1.3 KiB
Python

"""Phase 12 site 4: _list_anthropic_models Result migration.
Site 4 (L1337):
try: anthropic = _require_warmed('anthropic'); ... client.models.list() ...
except Exception as exc:
raise _classify_anthropic_error(exc) from exc
BUG: _classify_anthropic_error(exc) returns ErrorInfo (not an Exception).
'raise ErrorInfo from exc' would fail at runtime. Migrate to Result.
"""
import sys
sys.path.insert(0, ".")
def test_phase12_site4_list_anthropic_models_result_exists():
import src.ai_client
assert hasattr(src.ai_client, "_list_anthropic_models_result"), \
"_list_anthropic_models_result helper missing"
def test_phase12_site4_helper_returns_result():
import src.ai_client
import inspect
fn = src.ai_client._list_anthropic_models_result
sig = inspect.signature(fn)
assert "Result" in str(sig.return_annotation), \
f"_list_anthropic_models_result return must be Result, got {sig.return_annotation}"
def test_phase12_site4_legacy_obliterated():
"""_list_anthropic_models wrapper OBLITERATED by cruft-removal Phase 4."""
import src.ai_client
assert not hasattr(src.ai_client, "_list_anthropic_models"), (
"_list_anthropic_models wrapper must be DELETED; "
"callers must use _list_anthropic_models_result(...).ok directly."
)