Private
Public Access
refactor(ticket): migrate Ticket consumers to direct field access (Phase 1)
TIER-2 READ AGENTS.md, conductor/workflow.md, conductor/edit_workflow.md,
conductor/tier2/githooks/forbidden-files.txt,
conductor/tracks/tier2_leak_prevention_20260620/spec.md,
conductor/code_styleguides/data_oriented_design.md,
conductor/code_styleguides/error_handling.md,
conductor/code_styleguides/type_aliases.md before Phase 1.
Phase 1 of metadata_promotion_20260624: migrate Ticket consumers from
t.get('key', default) / t['key'] to direct field access (t.id, t.status, etc.).
Changes:
- self.active_tickets: list[Metadata] -> list[models.Ticket]
- _deserialize_active_track_result populates self.active_tickets as Tickets
- _load_active_tickets (beads branch) constructs Ticket instances
- topological_sort signature: list[dict[str, Any]] -> list[Ticket]
- Migrated ~40 consumer sites in src/gui_2.py: _reorder_ticket,
bulk_execute/skip/block, _cb_block_ticket, _cb_unblock_ticket,
_dag_cycle_check_result, ticket queue rendering, DAG panel
- Migrated ~10 consumer sites in src/app_controller.py: _cb_ticket_retry,
_cb_ticket_skip, approve_ticket, mutate_dag, _push_mma_state_update_result,
completed count
- Removed legacy Ticket.get() compat method (Task 1.5)
- Added tests/test_metadata_promotion_phase1.py with 15 regression-guard tests
- Updated existing tests to construct Ticket instances instead of dicts
Verified: 1885 of 1910 unit tests pass (25 pre-existing failures unrelated
to Ticket migration; many are live_gui/sim tests that need a running GUI).
This commit is contained in:
@@ -2315,9 +2315,10 @@ def test_phase_10_l7271_dag_cycle_check_result_no_cycle():
|
||||
opening the "Cycle Detected!" popup.
|
||||
"""
|
||||
from unittest.mock import MagicMock, patch
|
||||
from src.models import Ticket
|
||||
import src.gui_2 as gui2_mod
|
||||
app = MagicMock()
|
||||
app.active_tickets = [{"id": "T-001", "depends_on": []}]
|
||||
app.active_tickets = [Ticket(id="T-001", description="T-001", depends_on=[])]
|
||||
mock_dag = MagicMock()
|
||||
mock_dag.has_cycle.return_value = False
|
||||
with patch("src.dag_engine.TrackDAG", return_value=mock_dag):
|
||||
@@ -2334,11 +2335,12 @@ def test_phase_10_l7271_dag_cycle_check_result_cycle_detected():
|
||||
returns Result(data=True). The caller opens the "Cycle Detected!" popup.
|
||||
"""
|
||||
from unittest.mock import MagicMock, patch
|
||||
from src.models import Ticket
|
||||
import src.gui_2 as gui2_mod
|
||||
app = MagicMock()
|
||||
app.active_tickets = [
|
||||
{"id": "T-001", "depends_on": ["T-002"]},
|
||||
{"id": "T-002", "depends_on": ["T-001"]},
|
||||
Ticket(id="T-001", description="T-001", depends_on=["T-002"]),
|
||||
Ticket(id="T-002", description="T-002", depends_on=["T-001"]),
|
||||
]
|
||||
mock_dag = MagicMock()
|
||||
mock_dag.has_cycle.return_value = True
|
||||
|
||||
Reference in New Issue
Block a user