Skip to content

Commit 38d266a

Browse files
committed
fix(tests): resolve failing tests after review feedback
Signed-off-by: Luca Muscariello <muscariello@ieee.org>
1 parent 6d04127 commit 38d266a

5 files changed

Lines changed: 24 additions & 22 deletions

File tree

src/a2a/client/transports/rest.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ async def cancel_task(
259259
context,
260260
)
261261
response_data = await self._send_post_request(
262-
f'/v1/tasks/{request.id}:cancel', payload, modified_kwargs
262+
f'/v1/{request.id}:cancel', payload, modified_kwargs
263263
)
264264
response: Task = ParseDict(response_data, Task())
265265
return response
@@ -281,7 +281,7 @@ async def set_task_callback(
281281
payload, modified_kwargs, context
282282
)
283283
response_data = await self._send_post_request(
284-
f'/v1/tasks/{request.task_id}/pushNotificationConfigs',
284+
f'/v1/{request.task_id}/pushNotificationConfigs',
285285
payload,
286286
modified_kwargs,
287287
)
@@ -313,7 +313,7 @@ async def get_task_callback(
313313
if 'task_id' in params:
314314
del params['task_id']
315315
response_data = await self._send_get_request(
316-
f'/v1/tasks/{request.task_id}/pushNotificationConfigs/{request.id}',
316+
f'/v1/{request.task_id}/pushNotificationConfigs/{request.id}',
317317
params,
318318
modified_kwargs,
319319
)
@@ -339,7 +339,7 @@ async def subscribe(
339339
async with aconnect_sse(
340340
self.httpx_client,
341341
'GET',
342-
f'{self.url}/v1/tasks/{request.id}:subscribe',
342+
f'{self.url}/v1/{request.id}:subscribe',
343343
**modified_kwargs,
344344
) as event_source:
345345
try:

src/a2a/server/request_handlers/default_request_handler.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,7 @@ async def on_create_task_push_notification_config(
486486
if not self._push_config_store:
487487
raise ServerError(error=UnsupportedOperationError())
488488

489-
task_id = params.task_id
489+
task_id = _extract_task_id(params.task_id)
490490
task: Task | None = await self.task_store.get(task_id, context)
491491
if not task:
492492
raise ServerError(error=TaskNotFoundError())
@@ -514,7 +514,7 @@ async def on_get_task_push_notification_config(
514514
if not self._push_config_store:
515515
raise ServerError(error=UnsupportedOperationError())
516516

517-
task_id = params.task_id
517+
task_id = _extract_task_id(params.task_id)
518518
config_id = params.id
519519
task: Task | None = await self.task_store.get(task_id, context)
520520
if not task:
@@ -546,7 +546,7 @@ async def on_subscribe_to_task(
546546
Allows a client to re-attach to a running streaming task's event stream.
547547
Requires the task and its queue to still be active.
548548
"""
549-
task_id = params.id
549+
task_id = _extract_task_id(params.id)
550550
task: Task | None = await self.task_store.get(task_id, context)
551551
if not task:
552552
raise ServerError(error=TaskNotFoundError())
@@ -588,7 +588,7 @@ async def on_list_task_push_notification_config(
588588
if not self._push_config_store:
589589
raise ServerError(error=UnsupportedOperationError())
590590

591-
task_id = params.task_id
591+
task_id = _extract_task_id(params.task_id)
592592
task: Task | None = await self.task_store.get(task_id, context)
593593
if not task:
594594
raise ServerError(error=TaskNotFoundError())

tests/integration/test_client_server_integration.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ async def test_http_transport_cancel_task(
467467
handler = transport_setup.handler
468468

469469
# Use CancelTaskRequest with name (AIP resource format)
470-
params = CancelTaskRequest(id=CANCEL_TASK_RESPONSE.id)
470+
params = CancelTaskRequest(id=f'tasks/{CANCEL_TASK_RESPONSE.id}')
471471
result = await transport.cancel_task(request=params)
472472

473473
assert result.id == CANCEL_TASK_RESPONSE.id
@@ -519,7 +519,7 @@ async def test_http_transport_set_task_callback(
519519

520520
# Create CreateTaskPushNotificationConfigRequest with required fields
521521
params = CreateTaskPushNotificationConfigRequest(
522-
task_id='task-callback-123',
522+
task_id='tasks/task-callback-123',
523523
config_id='pnc-abc',
524524
config=CALLBACK_CONFIG.push_notification_config,
525525
)
@@ -596,7 +596,7 @@ async def test_http_transport_get_task_callback(
596596

597597
# Use GetTaskPushNotificationConfigRequest with name field (resource name)
598598
params = GetTaskPushNotificationConfigRequest(
599-
task_id=CALLBACK_CONFIG.task_id, id=CALLBACK_CONFIG.id
599+
task_id=f'tasks/{CALLBACK_CONFIG.task_id}', id=CALLBACK_CONFIG.id
600600
)
601601
result = await transport.get_task_callback(request=params)
602602

@@ -668,7 +668,7 @@ async def test_http_transport_resubscribe(
668668
handler = transport_setup.handler
669669

670670
# Use SubscribeToTaskRequest with name (AIP resource format)
671-
params = SubscribeToTaskRequest(id=RESUBSCRIBE_EVENT.task_id)
671+
params = SubscribeToTaskRequest(id=f'tasks/{RESUBSCRIBE_EVENT.task_id}')
672672
stream = transport.subscribe(request=params)
673673
first_event = await anext(stream)
674674

tests/server/request_handlers/test_default_request_handler.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1853,7 +1853,7 @@ async def noop_coro_for_task():
18531853

18541854
@pytest.mark.asyncio
18551855
async def test_set_task_push_notification_config_no_notifier():
1856-
"""Test on_set_task_push_notification_config when _push_config_store is None."""
1856+
"""Test on_create_task_push_notification_config when _push_config_store is None."""
18571857
request_handler = DefaultRequestHandler(
18581858
agent_executor=MockAgentExecutor(),
18591859
task_store=AsyncMock(spec=TaskStore),
@@ -1867,15 +1867,15 @@ async def test_set_task_push_notification_config_no_notifier():
18671867
from a2a.utils.errors import ServerError # Local import
18681868

18691869
with pytest.raises(ServerError) as exc_info:
1870-
await request_handler.on_set_task_push_notification_config(
1870+
await request_handler.on_create_task_push_notification_config(
18711871
params, create_server_call_context()
18721872
)
18731873
assert isinstance(exc_info.value.error, UnsupportedOperationError)
18741874

18751875

18761876
@pytest.mark.asyncio
18771877
async def test_set_task_push_notification_config_task_not_found():
1878-
"""Test on_set_task_push_notification_config when task is not found."""
1878+
"""Test on_create_task_push_notification_config when task is not found."""
18791879
mock_task_store = AsyncMock(spec=TaskStore)
18801880
mock_task_store.get.return_value = None # Task not found
18811881
mock_push_store = AsyncMock(spec=PushNotificationConfigStore)
@@ -1896,7 +1896,7 @@ async def test_set_task_push_notification_config_task_not_found():
18961896

18971897
context = create_server_call_context()
18981898
with pytest.raises(ServerError) as exc_info:
1899-
await request_handler.on_set_task_push_notification_config(
1899+
await request_handler.on_create_task_push_notification_config(
19001900
params, context
19011901
)
19021902

@@ -2010,7 +2010,7 @@ async def test_get_task_push_notification_config_info_with_config():
20102010
),
20112011
)
20122012
context = create_server_call_context()
2013-
await request_handler.on_set_task_push_notification_config(
2013+
await request_handler.on_create_task_push_notification_config(
20142014
set_config_params, context
20152015
)
20162016

@@ -2049,7 +2049,7 @@ async def test_get_task_push_notification_config_info_with_config_no_id():
20492049
config_id='default',
20502050
config=PushNotificationConfig(url='http://1.example.com'),
20512051
)
2052-
await request_handler.on_set_task_push_notification_config(
2052+
await request_handler.on_create_task_push_notification_config(
20532053
set_config_params, create_server_call_context()
20542054
)
20552055

@@ -2292,7 +2292,7 @@ async def test_list_task_push_notification_config_info_with_config_and_no_id():
22922292
config_id='default',
22932293
config=PushNotificationConfig(url='http://1.example.com'),
22942294
)
2295-
await request_handler.on_set_task_push_notification_config(
2295+
await request_handler.on_create_task_push_notification_config(
22962296
set_config_params1, create_server_call_context()
22972297
)
22982298

@@ -2301,7 +2301,7 @@ async def test_list_task_push_notification_config_info_with_config_and_no_id():
23012301
config_id='default',
23022302
config=PushNotificationConfig(url='http://2.example.com'),
23032303
)
2304-
await request_handler.on_set_task_push_notification_config(
2304+
await request_handler.on_create_task_push_notification_config(
23052305
set_config_params2, create_server_call_context()
23062306
)
23072307

tests/server/test_integration.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -533,7 +533,9 @@ def test_set_push_notification_config(
533533
url='https://example.com', token='secret-token'
534534
),
535535
)
536-
handler.on_set_task_push_notification_config.return_value = task_push_config
536+
handler.on_create_task_push_notification_config.return_value = (
537+
task_push_config
538+
)
537539

538540
# Send request
539541
response = client.post(
@@ -559,7 +561,7 @@ def test_set_push_notification_config(
559561
assert data['result']['pushNotificationConfig']['token'] == 'secret-token'
560562

561563
# Verify handler was called
562-
handler.on_set_task_push_notification_config.assert_awaited_once()
564+
handler.on_create_task_push_notification_config.assert_awaited_once()
563565

564566

565567
def test_get_push_notification_config(

0 commit comments

Comments
 (0)