fix: map rejected task state in proto converters (#668) · a2aproject/a2a-python@957e92b · GitHub
Skip to content

Commit 957e92b

Browse files
authored
fix: map rejected task state in proto converters (#668)
Fixes #625
1 parent a802500 commit 957e92b

3 files changed

Lines changed: 53 additions & 3 deletions

File tree

‎src/a2a/utils/proto_utils.py‎

Lines changed: 4 additions & 0 deletions

‎tests/server/apps/rest/test_rest_fastapi_app.py‎

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,5 +352,52 @@ async def mock_stream_response():
352352
assert response.status_code == 200
353353

354354

355+
@pytest.mark.anyio
356+
async def test_send_message_rejected_task(
357+
client: AsyncClient, request_handler: MagicMock
358+
) -> None:
359+
expected_response = a2a_pb2.SendMessageResponse(
360+
task=a2a_pb2.Task(
361+
id='test_task_id',
362+
context_id='test_context_id',
363+
status=a2a_pb2.TaskStatus(
364+
state=a2a_pb2.TaskState.TASK_STATE_REJECTED,
365+
update=a2a_pb2.Message(
366+
message_id='test',
367+
role=a2a_pb2.ROLE_AGENT,
368+
content=[
369+
a2a_pb2.Part(text="I don't want to work"),
370+
],
371+
),
372+
),
373+
),
374+
)
375+
request_handler.on_message_send.return_value = Task(
376+
id='test_task_id',
377+
context_id='test_context_id',
378+
status=TaskStatus(
379+
state=TaskState.rejected,
380+
message=Message(
381+
message_id='test',
382+
role=Role.agent,
383+
parts=[Part(TextPart(text="I don't want to work"))],
384+
),
385+
),
386+
)
387+
request = a2a_pb2.SendMessageRequest(
388+
request=a2a_pb2.Message(),
389+
configuration=a2a_pb2.SendMessageConfiguration(),
390+
)
391+
392+
response = await client.post(
393+
'/v1/message:send', json=json_format.MessageToDict(request)
394+
)
395+
396+
response.raise_for_status()
397+
actual_response = a2a_pb2.SendMessageResponse()
398+
json_format.Parse(response.text, actual_response)
399+
assert expected_response == actual_response
400+
401+
355402
if __name__ == '__main__':
356403
pytest.main([__file__])

‎tests/utils/test_proto_utils.py‎

Lines changed: 2 additions & 3 deletions

0 commit comments

Comments
 (0)