Skip to content

Commit 3a04f98

Browse files
authored
Merge branch 'a2aproject:main' into feat/enable-rest-transport
2 parents 01026f1 + 957e92b commit 3a04f98

File tree

3 files changed

+53
-3
lines changed

3 files changed

+53
-3
lines changed

src/a2a/utils/proto_utils.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,8 @@ def task_state(cls, state: types.TaskState) -> a2a_pb2.TaskState:
230230
return a2a_pb2.TaskState.TASK_STATE_INPUT_REQUIRED
231231
case types.TaskState.auth_required:
232232
return a2a_pb2.TaskState.TASK_STATE_AUTH_REQUIRED
233+
case types.TaskState.rejected:
234+
return a2a_pb2.TaskState.TASK_STATE_REJECTED
233235
case _:
234236
return a2a_pb2.TaskState.TASK_STATE_UNSPECIFIED
235237

@@ -703,6 +705,8 @@ def task_state(cls, state: a2a_pb2.TaskState) -> types.TaskState:
703705
return types.TaskState.input_required
704706
case a2a_pb2.TaskState.TASK_STATE_AUTH_REQUIRED:
705707
return types.TaskState.auth_required
708+
case a2a_pb2.TaskState.TASK_STATE_REJECTED:
709+
return types.TaskState.rejected
706710
case _:
707711
return types.TaskState.unknown
708712

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
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,8 @@ def test_enum_conversions(self):
183183
)
184184

185185
for state in types.TaskState:
186-
if state not in (types.TaskState.unknown, types.TaskState.rejected):
187-
proto_state = proto_utils.ToProto.task_state(state)
188-
assert proto_utils.FromProto.task_state(proto_state) == state
186+
proto_state = proto_utils.ToProto.task_state(state)
187+
assert proto_utils.FromProto.task_state(proto_state) == state
189188

190189
# Test unknown state case
191190
assert (

0 commit comments

Comments
 (0)