30 lines
1.1 KiB
Python
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"
|