feat(models): Add model_override field to Ticket

This commit is contained in:
2026-03-07 16:41:47 -05:00
parent 3d89d0e026
commit 245653ce62
2 changed files with 25 additions and 0 deletions

View File

@@ -75,6 +75,7 @@ class Ticket:
step_mode: bool = False step_mode: bool = False
retry_count: int = 0 retry_count: int = 0
manual_block: bool = False manual_block: bool = False
model_override: Optional[str] = None
def mark_blocked(self, reason: str) -> None: def mark_blocked(self, reason: str) -> None:
self.status = "blocked" self.status = "blocked"
@@ -112,6 +113,7 @@ class Ticket:
"step_mode": self.step_mode, "step_mode": self.step_mode,
"retry_count": self.retry_count, "retry_count": self.retry_count,
"manual_block": self.manual_block, "manual_block": self.manual_block,
"model_override": self.model_override,
} }
@classmethod @classmethod
@@ -130,6 +132,7 @@ class Ticket:
step_mode=data.get("step_mode", False), step_mode=data.get("step_mode", False),
retry_count=data.get("retry_count", 0), retry_count=data.get("retry_count", 0),
manual_block=data.get("manual_block", False), manual_block=data.get("manual_block", False),
model_override=data.get("model_override"),
) )

View File

@@ -0,0 +1,22 @@
import pytest
from src.models import Ticket
def test_ticket_has_model_override_field():
t = Ticket(id="T-001", description="Test")
assert hasattr(t, 'model_override'), "Ticket must have model_override field"
assert t.model_override is None, "model_override should default to None"
def test_model_override_serialization():
t = Ticket(id="T-001", description="Test", model_override="gemini-3.1-pro-preview")
d = t.to_dict()
assert d.get('model_override') == "gemini-3.1-pro-preview", "to_dict should include model_override"
def test_model_override_deserialization():
d = {"id": "T-001", "description": "Test", "model_override": "gemini-2.5-flash"}
t = Ticket.from_dict(d)
assert t.model_override == "gemini-2.5-flash", "from_dict should restore model_override"
def test_model_override_default_on_deserialize():
d = {"id": "T-001", "description": "Test"}
t = Ticket.from_dict(d)
assert t.model_override is None, "Missing model_override should default to None"