rara/packages/python/tests/test_server.py
toki fdc86c7ff4
Some checks are pending
ci / validate (push) Waiting to run
initial commit
2026-07-18 18:41:17 +09:00

47 lines
1.4 KiB
Python

from rara.v1 import executor_pb2
from rara_worker.server import ExecutorService
async def test_capabilities_include_ping() -> None:
service = ExecutorService()
response = await service.GetCapabilities(executor_pb2.CapabilityRequest(), None)
assert response.contract_version == 1
assert [capability.name for capability in response.capabilities] == ["ping"]
async def test_ping_execution_completes() -> None:
service = ExecutorService()
events = [
event
async for event in service.Execute(
executor_pb2.JobSpec(
job_id="job-1",
step_run_id="step-1",
kind="ping",
),
None,
)
]
assert [event.phase for event in events] == [
executor_pb2.ProgressEvent.PHASE_ACCEPTED,
executor_pb2.ProgressEvent.PHASE_RUNNING,
executor_pb2.ProgressEvent.PHASE_SUCCEEDED,
]
assert events[-1].result.output["status"] == "ok"
async def test_unknown_execution_fails_without_retry() -> None:
service = ExecutorService()
events = [
event
async for event in service.Execute(
executor_pb2.JobSpec(job_id="job-2", step_run_id="step-2", kind="missing"),
None,
)
]
assert events[-1].phase == executor_pb2.ProgressEvent.PHASE_FAILED
assert events[-1].error.code == "executor_not_found"
assert not events[-1].error.retryable