feat(models): Add priority field to Ticket dataclass and update serialization
This commit is contained in:
@@ -66,7 +66,7 @@ This file tracks all major tracks for the project. Each track has its own detail
|
||||
|
||||
### Manual UX Controls
|
||||
|
||||
14. [ ] **Track: Manual Ticket Queue Management**
|
||||
14. [~] **Track: Manual Ticket Queue Management**
|
||||
*Link: [./tracks/ticket_queue_mgmt_20260306/](./tracks/ticket_queue_mgmt_20260306/)*
|
||||
|
||||
15. [ ] **Track: Kill/Abort Running Workers**
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
## Phase 1: Priority Field
|
||||
Focus: Add priority to Ticket model
|
||||
|
||||
- [ ] Task 1.1: Initialize MMA Environment
|
||||
- [x] Task 1.1: Initialize MMA Environment
|
||||
- Run `activate_skill mma-orchestrator` before starting
|
||||
|
||||
- [ ] Task 1.2: Add priority field to Ticket
|
||||
- [~] Task 1.2: Add priority field to Ticket
|
||||
- WHERE: `src/models.py` `Ticket` dataclass
|
||||
- WHAT: Add `priority: str = "medium"` field
|
||||
- HOW:
|
||||
|
||||
@@ -66,6 +66,7 @@ class Ticket:
|
||||
description: str
|
||||
status: str = "todo"
|
||||
assigned_to: str = "unassigned"
|
||||
priority: str = "medium"
|
||||
target_file: Optional[str] = None
|
||||
target_symbols: List[str] = field(default_factory=list)
|
||||
context_requirements: List[str] = field(default_factory=list)
|
||||
@@ -90,6 +91,7 @@ class Ticket:
|
||||
"description": self.description,
|
||||
"status": self.status,
|
||||
"assigned_to": self.assigned_to,
|
||||
"priority": self.priority,
|
||||
"target_file": self.target_file,
|
||||
"target_symbols": self.target_symbols,
|
||||
"context_requirements": self.context_requirements,
|
||||
@@ -105,7 +107,8 @@ class Ticket:
|
||||
id=data["id"],
|
||||
description=data.get("description", ""),
|
||||
status=data.get("status", "todo"),
|
||||
assigned_to=data.get("assigned_to", ""),
|
||||
assigned_to=data.get("assigned_to", "unassigned"),
|
||||
priority=data.get("priority", "medium"),
|
||||
target_file=data.get("target_file"),
|
||||
target_symbols=data.get("target_symbols", []),
|
||||
context_requirements=data.get("context_requirements", []),
|
||||
|
||||
37
tests/test_ticket_queue.py
Normal file
37
tests/test_ticket_queue.py
Normal file
@@ -0,0 +1,37 @@
|
||||
import pytest
|
||||
from src.models import Ticket
|
||||
|
||||
def test_ticket_priority_default():
|
||||
ticket = Ticket(id="T1", description="Test ticket")
|
||||
assert ticket.priority == "medium"
|
||||
|
||||
def test_ticket_priority_custom():
|
||||
ticket_high = Ticket(id="T2", description="High priority", priority="high")
|
||||
assert ticket_high.priority == "high"
|
||||
|
||||
ticket_low = Ticket(id="T3", description="Low priority", priority="low")
|
||||
assert ticket_low.priority == "low"
|
||||
|
||||
def test_ticket_to_dict_priority():
|
||||
ticket = Ticket(id="T4", description="To dict test", priority="high")
|
||||
d = ticket.to_dict()
|
||||
assert "priority" in d
|
||||
assert d["priority"] == "high"
|
||||
|
||||
def test_ticket_from_dict_priority():
|
||||
data = {
|
||||
"id": "T5",
|
||||
"description": "From dict test",
|
||||
"priority": "low",
|
||||
"status": "todo"
|
||||
}
|
||||
ticket = Ticket.from_dict(data)
|
||||
assert ticket.priority == "low"
|
||||
|
||||
def test_ticket_from_dict_default_priority():
|
||||
data = {
|
||||
"id": "T6",
|
||||
"description": "No priority in dict"
|
||||
}
|
||||
ticket = Ticket.from_dict(data)
|
||||
assert ticket.priority == "medium"
|
||||
Reference in New Issue
Block a user