This commit is contained in:
2026-03-17 18:32:44 +03:00
commit efcd4a8dfd
209 changed files with 33355 additions and 0 deletions
@@ -0,0 +1,80 @@
from __future__ import annotations
from datetime import datetime, timezone
from uuid import uuid4
from app.api.executions.get_execution import _build_step_run_response
from app.models.execution import ExecutionStepRun, ExecutionStepStatus
def _build_step_run(
*,
request_snapshot,
response_snapshot,
) -> ExecutionStepRun:
now = datetime.now(timezone.utc)
step_run = ExecutionStepRun(
run_id=uuid4(),
step=1,
status=ExecutionStepStatus.SUCCEEDED,
)
step_run.name = "Step 1"
step_run.request_snapshot = request_snapshot
step_run.response_snapshot = response_snapshot
step_run.created_at = now
step_run.updated_at = now
return step_run
def test_build_step_run_response_for_post_sets_accepted_and_output_payloads():
step_run = _build_step_run(
request_snapshot={
"method": "post",
"json_body": {"subject": "Hi", "message": "Hello"},
},
response_snapshot={
"status_code": 200,
"body": {"sent": 1},
},
)
response = _build_step_run_response(step_run)
assert response.method == "POST"
assert response.status_code == 200
assert response.accepted_payload == {"subject": "Hi", "message": "Hello"}
assert response.output_payload == {"sent": 1}
def test_build_step_run_response_for_get_keeps_accepted_payload_none():
step_run = _build_step_run(
request_snapshot={
"method": "GET",
"query_params": {"limit": 20},
},
response_snapshot={
"status_code": "204",
"body": "",
},
)
response = _build_step_run_response(step_run)
assert response.method == "GET"
assert response.status_code == 204
assert response.accepted_payload is None
assert response.output_payload == ""
def test_build_step_run_response_handles_missing_snapshots():
step_run = _build_step_run(
request_snapshot=None,
response_snapshot=None,
)
response = _build_step_run_response(step_run)
assert response.method is None
assert response.status_code is None
assert response.accepted_payload is None
assert response.output_payload is None