feat(models): Add model_override field to Ticket
This commit is contained in:
@@ -75,6 +75,7 @@ class Ticket:
|
||||
step_mode: bool = False
|
||||
retry_count: int = 0
|
||||
manual_block: bool = False
|
||||
model_override: Optional[str] = None
|
||||
|
||||
def mark_blocked(self, reason: str) -> None:
|
||||
self.status = "blocked"
|
||||
@@ -112,6 +113,7 @@ class Ticket:
|
||||
"step_mode": self.step_mode,
|
||||
"retry_count": self.retry_count,
|
||||
"manual_block": self.manual_block,
|
||||
"model_override": self.model_override,
|
||||
}
|
||||
|
||||
@classmethod
|
||||
@@ -130,6 +132,7 @@ class Ticket:
|
||||
step_mode=data.get("step_mode", False),
|
||||
retry_count=data.get("retry_count", 0),
|
||||
manual_block=data.get("manual_block", False),
|
||||
model_override=data.get("model_override"),
|
||||
)
|
||||
|
||||
|
||||
|
||||
22
tests/test_per_ticket_model.py
Normal file
22
tests/test_per_ticket_model.py
Normal 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"
|
||||
Reference in New Issue
Block a user