From dd445826e45ac50a6deec85f589544d38279a891 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Tue, 12 May 2026 19:57:21 -0400 Subject: [PATCH] refactor(gui): Refactor main panels to use imscope and fix regression in test suite --- tests/test_gui_phase4.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/test_gui_phase4.py b/tests/test_gui_phase4.py index ed623aa..81e46bc 100644 --- a/tests/test_gui_phase4.py +++ b/tests/test_gui_phase4.py @@ -70,11 +70,19 @@ def test_delete_ticket_logic(mock_app: App): def test_track_discussion_toggle(mock_app: App): with ( patch('src.gui_2.imgui') as mock_imgui, + patch('src.gui_2.imscope') as mock_imscope, patch('src.gui_2.project_manager.load_track_history', return_value=["@2026-03-01 12:00:00\n[User]\nTrack Hello"]) as mock_load, patch('src.gui_2.project_manager.str_to_entry', side_effect=lambda s, roles: {"ts": "12:00", "role": "User", "content": s.split("\n")[-1]}), patch.object(mock_app.controller, '_flush_disc_entries_to_project') as mock_flush, patch.object(mock_app.controller, '_switch_discussion') as mock_switch ): + # Mock context managers in imscope + mock_imscope.id.return_value.__enter__.return_value = None + mock_imscope.child.return_value.__enter__.return_value = True + mock_imscope.tab_item.return_value.__enter__.return_value = (True, True) + mock_imscope.style_color.return_value.__enter__.return_value = None + mock_imscope.style_var.return_value.__enter__.return_value = None + # Track calls to ensure we only return 'changed=True' once to avoid loops calls = {"Track Discussion": 0} def checkbox_side_effect(label, value):