92 lines
2.5 KiB
Python
92 lines
2.5 KiB
Python
import pytest
|
|
from models import Ticket, Track, WorkerContext
|
|
|
|
def test_ticket_instantiation():
|
|
"""
|
|
Verifies that a Ticket can be instantiated with its required fields:
|
|
id, description, status, assigned_to.
|
|
"""
|
|
ticket_id = "T1"
|
|
description = "Implement surgical code changes"
|
|
status = "todo"
|
|
assigned_to = "tier3-worker"
|
|
|
|
ticket = Ticket(
|
|
id=ticket_id,
|
|
description=description,
|
|
status=status,
|
|
assigned_to=assigned_to
|
|
)
|
|
|
|
assert ticket.id == ticket_id
|
|
assert ticket.description == description
|
|
assert ticket.status == status
|
|
assert ticket.assigned_to == assigned_to
|
|
assert ticket.depends_on == []
|
|
|
|
def test_ticket_with_dependencies():
|
|
"""
|
|
Verifies that a Ticket can store dependencies.
|
|
"""
|
|
ticket = Ticket(
|
|
id="T2",
|
|
description="Write code",
|
|
status="todo",
|
|
assigned_to="worker-1",
|
|
depends_on=["T1"]
|
|
)
|
|
assert ticket.depends_on == ["T1"]
|
|
|
|
def test_track_instantiation():
|
|
"""
|
|
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")
|
|
|
|
track_id = "TRACK-1"
|
|
track_desc = "Implement MMA Models"
|
|
tickets = [ticket1, ticket2]
|
|
|
|
track = Track(
|
|
id=track_id,
|
|
description=track_desc,
|
|
tickets=tickets
|
|
)
|
|
|
|
assert track.id == track_id
|
|
assert track.description == track_desc
|
|
assert len(track.tickets) == 2
|
|
assert track.tickets[0].id == "T1"
|
|
assert track.tickets[1].id == "T2"
|
|
|
|
def test_track_can_handle_empty_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 == []
|
|
|
|
def test_worker_context_instantiation():
|
|
"""
|
|
Verifies that a WorkerContext can be instantiated with ticket_id,
|
|
model_name, and messages.
|
|
"""
|
|
ticket_id = "T1"
|
|
model_name = "gemini-2.0-flash-lite"
|
|
messages = [
|
|
{"role": "user", "content": "Hello"},
|
|
{"role": "assistant", "content": "Hi there!"}
|
|
]
|
|
|
|
context = WorkerContext(
|
|
ticket_id=ticket_id,
|
|
model_name=model_name,
|
|
messages=messages
|
|
)
|
|
|
|
assert context.ticket_id == ticket_id
|
|
assert context.model_name == model_name
|
|
assert context.messages == messages
|