WIP: PAIN4

This commit is contained in:
2026-03-05 15:53:50 -05:00
parent 184fb39e53
commit d04574aa8f
11 changed files with 127 additions and 835 deletions

View File

@@ -1,7 +1,6 @@
import pytest
from unittest.mock import MagicMock, patch
from gui_2 import App
from src.gui_2 import App
from src.models import Track
@pytest.fixture(autouse=True)
@@ -17,7 +16,7 @@ def setup_mock_app(mock_app: App):
def test_add_ticket_logic(mock_app: App):
# Mock imgui calls to simulate clicking "Create" in the form
with patch('gui_2.imgui') as mock_imgui:
with patch('src.gui_2.imgui') as mock_imgui:
# Default return for any checkbox/input
mock_imgui.checkbox.side_effect = lambda label, value: (False, value)
mock_imgui.input_text.side_effect = lambda label, value, **kwargs: (False, value)
@@ -71,7 +70,7 @@ def test_delete_ticket_logic(mock_app: App):
children_map = {"T-001": ["T-002"]}
rendered = set()
with patch('gui_2.imgui') as mock_imgui:
with patch('src.gui_2.imgui') as mock_imgui:
# Configure mock_imgui.button to return True only for "Delete##T-001"
def button_side_effect(label):
return label == "Delete##T-001"
@@ -93,7 +92,7 @@ def test_delete_ticket_logic(mock_app: App):
mock_imgui.ImVec2 = MagicMock
mock_imgui.ImVec4 = MagicMock
with patch('gui_2.C_LBL', MagicMock()), patch.object(mock_app.controller, '_push_mma_state_update') as mock_push:
with patch('src.gui_2.C_LBL', MagicMock()), patch.object(mock_app.controller, '_push_mma_state_update') as mock_push:
# Render T-001
mock_app._render_ticket_dag_node(mock_app.active_tickets[0], tickets_by_id, children_map, rendered)
@@ -107,9 +106,9 @@ def test_delete_ticket_logic(mock_app: App):
def test_track_discussion_toggle(mock_app: App):
with (
patch('gui_2.imgui') as mock_imgui,
patch('gui_2.project_manager.load_track_history', return_value=["@2026-03-01 12:00:00\n[User]\nTrack Hello"]) as mock_load,
patch('gui_2.project_manager.str_to_entry', side_effect=lambda s, roles: {"ts": "12:00", "role": "User", "content": s.split("\n")[-1]}),
patch('src.gui_2.imgui') as mock_imgui,
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
):