archive completed or outdated tracks.

This commit is contained in:
ed
2026-06-12 20:41:31 -04:00
parent 20b1a1048e
commit b0f31a84bd
40 changed files with 0 additions and 0 deletions
@@ -0,0 +1,58 @@
# 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')`:
1. `patch` creates/overrides `src.ai_client` in the `src` package namespace
2. But `app_controller` does `from src import ai_client_stub as ai_client` at module load time
3. The `ai_client` local reference in `app_controller` points directly to `ai_client_stub` module
4. Patch modifies `src.ai_client` (a different object), not `src.ai_client_stub`
5. Result: Functions in `ai_client_stub` aren'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
1. [x] Fix AIProxyClient - add `_pending_lock` threading.Lock to __init__
2. [x] Fix test_discussion_takes_gui.py - proper mocking for tab_item via imscope
3. [x] Fix test_on_tool_log_offloading - patch path to src.ai_client_stub.get_current_tier
4. [x] Fix test_redundant_calls_in_process_pending_gui_tasks - patch paths to src.ai_client_stub
5. [x] Fix test_gcli_path_updates_adapter - use ai_client_stub module reference
6. [x] Fix test_telemetry_data_updates_correctly - patch path to src.ai_client_stub.get_token_stats
7. [x] Fix test_gui_updates_on_event - patch path to src.ai_client_stub.get_token_stats
8. [x] 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 ✅
## Checkpoints
- 169fe520 - fix(ai_client_stub): add module-level import for GeminiCliAdapter
- 12f16e9a - fix(ai_client_proxy): add _pending_lock threading.Lock
- db69e3cb - fix(tests): update discussion takes GUI tests with proper mocking
@@ -0,0 +1,32 @@
# Track: Fix Pre-Existing Test Failures
## Context
Two test failures that are not related to the ai_client_stub integration fix but need to be resolved for full test suite passing.
## Failed Tests
### 1. test_ai_client_proxy_run.py::test_initial_state_variables
**File:** `tests/test_ai_client_proxy_run.py`
**Error:** `AssertionError: Missing _pending_lock`
**Root Cause:** The test expects `AIProxyClient` to have a `_pending_lock` attribute (a threading lock), but the class doesn't have it.
**Fix:** Add `_pending_lock: threading.Lock` to `AIProxyClient.__init__` in `src/ai_client_proxy.py`
### 2. test_discussion_takes_gui.py (both tests)
**File:** `tests/test_discussion_takes_gui.py`
**Error:** `ValueError: not enough values to unpack (expected 2, got 0)` at `src/gui_2.py:3668`
**Root Cause:** The test mocks `imgui.input_text` and `imgui.input_int` but NOT `imgui.input_text_multiline`. When `_render_synthesis_panel` calls `imgui.input_text_multiline(...)`, the mock returns `None` (not unpacked), causing the unpacking failure.
**Fix:** Add mock for `imgui.input_text_multiline` in the test setup.
## Tasks
1. [ ] Fix AIProxyClient - add `_pending_lock` threading.Lock to __init__
2. [ ] Fix test_discussion_takes_gui.py - add mock for input_text_multiline
3. [ ] Run tests to verify both fixes
4. [ ] Run full test suite to confirm all pass