49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
from unittest.mock import patch
|
|
|
|
from agent import (
|
|
A2H2ATicket,
|
|
Context,
|
|
Governance,
|
|
ProposedAction,
|
|
TicketSource,
|
|
create_a2h2a_ticket,
|
|
)
|
|
|
|
|
|
@patch("agent._call_tool")
|
|
def test_create_a2h2a_ticket_forwards_dry_run(mock_call_tool):
|
|
dry_run_ticket = A2H2ATicket(
|
|
dry_run=True,
|
|
source=TicketSource(
|
|
reporter="test",
|
|
trigger="test",
|
|
affected_service="test",
|
|
project_id="test",
|
|
),
|
|
proposed_action=ProposedAction(
|
|
execution_tool="test",
|
|
tool_parameters={},
|
|
),
|
|
context=Context(
|
|
summary="test",
|
|
user_justification="test",
|
|
conversation_history=[],
|
|
),
|
|
severity="LOW",
|
|
governance=Governance(
|
|
approval_status="PENDING",
|
|
authorized_approver="test",
|
|
requires_mfa=True,
|
|
timeout_minutes=15,
|
|
),
|
|
)
|
|
|
|
create_a2h2a_ticket(dry_run_ticket)
|
|
|
|
mock_call_tool.assert_called_once()
|
|
tool_name, payload = mock_call_tool.call_args.args
|
|
|
|
assert tool_name == "create_a2h2a_ticket"
|
|
assert payload["dry_run"] is True
|
|
assert payload["source"]["reporter"] == "test"
|
|
assert payload["proposed_action"]["execution_tool"] == "test" |