Private
Public Access
0
0
Files
manual_slop/tests/test_process_pending_gui_tasks.py
T
ed edebeac619 test: remove gemini_cli references in 6 + delete test_ai_client_list_models.py
Drop stale gemini_cli expectations: PROVIDERS expectations in
test_providers_source_of_truth + test_provider_curation, the
test_list_models_gemini_cli function (deleted the whole file since it
was the only test), the test_discussion_compression_gemini_cli function,
the test_gcli_path_updates_adapter function (its setter was removed),
the ui_gemini_cli_path references in test_mma_tier_usage_reset_fix and
test_rag_integration. These are the t1.9 minor edits.
2026-07-05 19:56:57 -04:00

58 lines
2.4 KiB
Python

from typing import Generator
import pytest
from unittest.mock import patch, Mock
from src import ai_client
from src.gui_2 import App
@pytest.fixture
def app_instance() -> Generator[App, None, None]:
with (
patch('src.app_controller.AppController.load_config', return_value={'ai': {'provider': 'gemini', 'model': 'gemini-2.5-flash-lite'}, 'projects': {}}),
patch('src.app_controller.AppController.save_config'),
patch('src.gui_2.project_manager'),
patch('src.gui_2.session_logger'),
patch('src.gui_2.immapp.run'),
patch('src.app_controller.AppController._load_active_project'),
patch('src.app_controller.AppController._fetch_models'),
patch.object(App, '_load_fonts'),
patch.object(App, '_post_init'),
patch('src.app_controller.AppController._prune_old_logs'),
patch('src.app_controller.AppController.start_services'),
# Do not patch _init_ai_and_hooks to ensure _settable_fields is initialized
patch('src.api_hooks.HookServer'),
patch('src.ai_client.set_provider'),
patch('src.ai_client.reset_session')
):
app = App()
yield app
def test_redundant_calls_in_process_pending_gui_tasks(app_instance: App) -> None:
app_instance.controller._pending_gui_tasks = [
{'action': 'set_value', 'item': 'current_provider', 'value': 'anthropic'}
]
with patch('src.ai_client.set_provider') as mock_set_provider, \
patch('src.ai_client.reset_session') as mock_reset_session:
app_instance.controller._process_pending_gui_tasks()
assert mock_set_provider.call_count == 1
assert mock_reset_session.call_count == 1
def test_process_pending_gui_tasks_drag(app_instance: App) -> None:
"""Test that the drag action is correctly processed and dispatches to the registered callback."""
mock_callback = Mock()
app_instance.controller._drag_actions["src_id"] = mock_callback
app_instance.controller._pending_gui_tasks = [
{"action": "drag", "src_item": "src_id", "dst_item": "dst_id"}
]
app_instance.controller._process_pending_gui_tasks()
mock_callback.assert_called_once_with(dst_item="dst_id")
def test_process_pending_gui_tasks_right_click(app_instance: App) -> None:
"""Test that the right_click action is correctly processed and dispatches to the registered callback."""
mock_callback = Mock()
app_instance.controller._right_clickable_actions["item_id"] = mock_callback
app_instance.controller._pending_gui_tasks = [
{"action": "right_click", "item": "item_id"}
]
app_instance.controller._process_pending_gui_tasks()
mock_callback.assert_called_once()