feat(models): Add model_override field to Ticket
This commit is contained in:
@@ -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"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
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