Files

30 lines
1.1 KiB
Python

from ai_orchestrator.application.services.execution import StructuredReviewer
from ai_orchestrator.domain.enums import NodeType
from ai_orchestrator.domain.models import ExecutionNode, Task
def test_structured_reviewer_accepts_valid_output() -> None:
reviewer = StructuredReviewer()
task = Task(project_id="default", goal="Review", inputs={})
node = ExecutionNode(task_id=task.task_id, node_type=NodeType.PLANNER, input_data={})
reviewed = reviewer.review(
task=task,
node=node,
output_data={"status": "planned", "goal": "Review"},
)
assert reviewed["review"]["status"] == "accepted"
assert reviewed["task_id"] == task.task_id
def test_structured_reviewer_marks_missing_status_as_review_failed() -> None:
reviewer = StructuredReviewer()
task = Task(project_id="default", goal="Review", inputs={})
node = ExecutionNode(task_id=task.task_id, node_type=NodeType.PLANNER, input_data={})
reviewed = reviewer.review(task=task, node=node, output_data={"goal": "Review"})
assert reviewed["status"] == "review_failed"
assert reviewed["review"]["status"] == "rejected"