feat(sdm): inject structural dependency mapping tags across codebase
Adds [C: caller] tags to functions/methods and [M: mutation] / [U: usage] tags to class variables based on cross-module call analysis.
This commit is contained in:
+26
-17
@@ -3,8 +3,9 @@ from src.models import Ticket, Track, WorkerContext
|
||||
def test_ticket_instantiation() -> None:
|
||||
"""
|
||||
|
||||
Verifies that a Ticket can be instantiated with its required fields:
|
||||
id, description, status, assigned_to.
|
||||
|
||||
Verifies that a Ticket can be instantiated with its required fields:
|
||||
id, description, status, assigned_to.
|
||||
"""
|
||||
ticket_id = "T1"
|
||||
description = "Implement surgical code changes"
|
||||
@@ -25,7 +26,8 @@ def test_ticket_instantiation() -> None:
|
||||
def test_ticket_with_dependencies() -> None:
|
||||
"""
|
||||
|
||||
Verifies that a Ticket can store dependencies.
|
||||
|
||||
Verifies that a Ticket can store dependencies.
|
||||
"""
|
||||
ticket = Ticket(
|
||||
id="T2",
|
||||
@@ -39,8 +41,9 @@ def test_ticket_with_dependencies() -> None:
|
||||
def test_track_instantiation() -> None:
|
||||
"""
|
||||
|
||||
Verifies that a Track can be instantiated with its required fields:
|
||||
id, description, and a list of Tickets.
|
||||
|
||||
Verifies that a Track can be instantiated with its required fields:
|
||||
id, description, and a list of Tickets.
|
||||
"""
|
||||
ticket1 = Ticket(id="T1", description="Task 1", status="todo", assigned_to="a")
|
||||
ticket2 = Ticket(id="T2", description="Task 2", status="todo", assigned_to="b")
|
||||
@@ -61,7 +64,8 @@ def test_track_instantiation() -> None:
|
||||
def test_track_can_handle_empty_tickets() -> None:
|
||||
"""
|
||||
|
||||
Verifies that a Track can be instantiated with an empty list of tickets.
|
||||
|
||||
Verifies that a Track can be instantiated with an empty list of tickets.
|
||||
"""
|
||||
track = Track(id="TRACK-2", description="Empty Track", tickets=[])
|
||||
assert track.tickets == []
|
||||
@@ -69,8 +73,9 @@ def test_track_can_handle_empty_tickets() -> None:
|
||||
def test_worker_context_instantiation() -> None:
|
||||
"""
|
||||
|
||||
Verifies that a WorkerContext can be instantiated with ticket_id,
|
||||
model_name, and messages.
|
||||
|
||||
Verifies that a WorkerContext can be instantiated with ticket_id,
|
||||
model_name, and messages.
|
||||
"""
|
||||
ticket_id = "T1"
|
||||
model_name = "gemini-2.0-flash-lite"
|
||||
@@ -90,8 +95,9 @@ def test_worker_context_instantiation() -> None:
|
||||
def test_ticket_mark_blocked() -> None:
|
||||
"""
|
||||
|
||||
Verifies that ticket.mark_blocked(reason) sets the status to 'blocked'.
|
||||
Note: The reason field might need to be added to the Ticket class.
|
||||
|
||||
Verifies that ticket.mark_blocked(reason) sets the status to 'blocked'.
|
||||
Note: The reason field might need to be added to the Ticket class.
|
||||
"""
|
||||
ticket = Ticket(id="T1", description="Task 1", status="todo", assigned_to="a")
|
||||
ticket.mark_blocked("Waiting for API key")
|
||||
@@ -100,7 +106,8 @@ def test_ticket_mark_blocked() -> None:
|
||||
def test_ticket_mark_complete() -> None:
|
||||
"""
|
||||
|
||||
Verifies that ticket.mark_complete() sets the status to 'completed'.
|
||||
|
||||
Verifies that ticket.mark_complete() sets the status to 'completed'.
|
||||
"""
|
||||
ticket = Ticket(id="T1", description="Task 1", status="todo", assigned_to="a")
|
||||
ticket.mark_complete()
|
||||
@@ -109,8 +116,9 @@ def test_ticket_mark_complete() -> None:
|
||||
def test_track_get_executable_tickets() -> None:
|
||||
"""
|
||||
|
||||
Verifies that track.get_executable_tickets() returns only 'todo' tickets
|
||||
whose dependencies are all 'completed'.
|
||||
|
||||
Verifies that track.get_executable_tickets() returns only 'todo' tickets
|
||||
whose dependencies are all 'completed'.
|
||||
"""
|
||||
# T1: todo, no deps -> executable
|
||||
t1 = Ticket(id="T1", description="T1", status="todo", assigned_to="a")
|
||||
@@ -134,10 +142,11 @@ def test_track_get_executable_tickets() -> None:
|
||||
def test_track_get_executable_tickets_complex() -> None:
|
||||
"""
|
||||
|
||||
Verifies executable tickets with complex dependency chains.
|
||||
Chain: T1 (comp) -> T2 (todo) -> T3 (todo)
|
||||
T4 (comp) -> T3
|
||||
T5 (todo) -> T3
|
||||
|
||||
Verifies executable tickets with complex dependency chains.
|
||||
Chain: T1 (comp) -> T2 (todo) -> T3 (todo)
|
||||
T4 (comp) -> T3
|
||||
T5 (todo) -> T3
|
||||
"""
|
||||
t1 = Ticket(id="T1", description="T1", status="completed", assigned_to="a")
|
||||
t2 = Ticket(id="T2", description="T2", status="todo", assigned_to="a", depends_on=["T1"])
|
||||
|
||||
Reference in New Issue
Block a user