7ba94d4a42
Before this change, app_controller imported rag_engine at module level which pulled in chromadb (~0.45s). Now rag_engine is only imported when RAG is actually enabled and needed. This improves startup time significantly.
2.6 KiB
2.6 KiB
Track: Fix Test Patches for ai_client_stub Integration
Context
After the refactor to use ai_client_stub as the module alias for app_controller, several tests fail because they use patch('src.ai_client.X') which doesn't properly reach the stub's module-level functions. This is a pre-existing architectural issue that needs fixing.
Root Cause Analysis
When tests use patch('src.ai_client.get_current_tier', return_value='Tier 3'):
patchcreates/overridessrc.ai_clientin thesrcpackage namespace- But
app_controllerdoesfrom src import ai_client_stub as ai_clientat module load time - The
ai_clientlocal reference inapp_controllerpoints directly toai_client_stubmodule - Patch modifies
src.ai_client(a different object), notsrc.ai_client_stub - Result: Functions in
ai_client_stubaren't patched
Solution Applied
Changed all patches from patch('src.ai_client.X') to patch('src.ai_client_stub.X') where the stub was the actual target.
Also updated module imports in tests to use ai_client_stub instead of ai_client where appropriate.
Tasks Completed
- Fix AIProxyClient - add
_pending_lockthreading.Lock to init - Fix test_discussion_takes_gui.py - proper mocking for tab_item via imscope
- Fix test_on_tool_log_offloading - patch path to src.ai_client_stub.get_current_tier
- Fix test_redundant_calls_in_process_pending_gui_tasks - patch paths to src.ai_client_stub
- Fix test_gcli_path_updates_adapter - use ai_client_stub module reference
- Fix test_telemetry_data_updates_correctly - patch path to src.ai_client_stub.get_token_stats
- Fix test_gui_updates_on_event - patch path to src.ai_client_stub.get_token_stats
- Run batch tests to verify all fixes
Files Modified
- src/ai_client_proxy.py - added _pending_lock
- src/ai_client_stub.py - added module-level import for GeminiCliAdapter
- tests/test_app_controller_offloading.py
- tests/test_process_pending_gui_tasks.py
- tests/test_gui_updates.py
- tests/test_discussion_takes_gui.py
Test Results
All previously failing tests now pass:
- test_ai_client_proxy_run.py::test_initial_state_variables ✅
- test_discussion_takes_gui.py (both tests) ✅
- test_on_tool_log_offloading ✅
- test_redundant_calls_in_process_pending_gui_tasks ✅
- test_gcli_path_updates_adapter ✅
- test_telemetry_data_updates_correctly ✅
- test_gui_updates_on_event ✅