|
22 | 22 | GetTaskPushNotificationConfigParams, |
23 | 23 | Message, |
24 | 24 | MessageSendParams, |
| 25 | + ListTasksParams, |
| 26 | + ListTasksResult, |
25 | 27 | Part, |
26 | 28 | PushNotificationConfig, |
27 | 29 | Role, |
@@ -105,6 +107,12 @@ async def stream_side_effect(*args, **kwargs): |
105 | 107 | lambda params, context: params |
106 | 108 | ) |
107 | 109 | handler.on_get_task_push_notification_config.return_value = CALLBACK_CONFIG |
| 110 | + handler.on_list_tasks.return_value = ListTasksResult( |
| 111 | + tasks=[TASK_FROM_BLOCKING], |
| 112 | + next_page_token='', |
| 113 | + page_size=50, |
| 114 | + total_size=1, |
| 115 | + ) |
108 | 116 |
|
109 | 117 | async def resubscribe_side_effect(*args, **kwargs): |
110 | 118 | yield RESUBSCRIBE_EVENT |
@@ -434,6 +442,63 @@ def channel_factory(address: str) -> Channel: |
434 | 442 | await transport.close() |
435 | 443 |
|
436 | 444 |
|
| 445 | +@pytest.mark.asyncio |
| 446 | +@pytest.mark.parametrize( |
| 447 | + 'transport_setup_fixture', |
| 448 | + [ |
| 449 | + pytest.param('jsonrpc_setup', id='JSON-RPC'), |
| 450 | + pytest.param('rest_setup', id='REST'), |
| 451 | + ], |
| 452 | +) |
| 453 | +async def test_http_transport_list_tasks( |
| 454 | + transport_setup_fixture: str, request |
| 455 | +) -> None: |
| 456 | + transport_setup: TransportSetup = request.getfixturevalue( |
| 457 | + transport_setup_fixture |
| 458 | + ) |
| 459 | + transport = transport_setup.transport |
| 460 | + handler = transport_setup.handler |
| 461 | + |
| 462 | + print(handler.on_list_tasks.call_args) |
| 463 | + |
| 464 | + params = ListTasksParams() |
| 465 | + result = await transport.list_tasks(params) |
| 466 | + |
| 467 | + handler.on_list_tasks.assert_awaited_once_with(params, ANY) |
| 468 | + assert result.next_page_token == '' |
| 469 | + assert result.page_size == 50 |
| 470 | + assert len(result.tasks) == 1 |
| 471 | + assert result.total_size == 1 |
| 472 | + |
| 473 | + if hasattr(transport, 'close'): |
| 474 | + await transport.close() |
| 475 | + |
| 476 | + |
| 477 | +@pytest.mark.asyncio |
| 478 | +async def test_grpc_transport_list_tasks( |
| 479 | + grpc_server_and_handler: tuple[str, AsyncMock], |
| 480 | + agent_card: AgentCard, |
| 481 | +) -> None: |
| 482 | + server_address, handler = grpc_server_and_handler |
| 483 | + agent_card.url = server_address |
| 484 | + |
| 485 | + def channel_factory(address: str) -> Channel: |
| 486 | + return grpc.aio.insecure_channel(address) |
| 487 | + |
| 488 | + channel = channel_factory(server_address) |
| 489 | + transport = GrpcTransport(channel=channel, agent_card=agent_card) |
| 490 | + |
| 491 | + result = await transport.list_tasks(ListTasksParams()) |
| 492 | + |
| 493 | + handler.on_list_tasks.assert_awaited_once() |
| 494 | + assert result.next_page_token == '' |
| 495 | + assert result.page_size == 50 |
| 496 | + assert len(result.tasks) == 1 |
| 497 | + assert result.total_size == 1 |
| 498 | + |
| 499 | + await transport.close() |
| 500 | + |
| 501 | + |
437 | 502 | @pytest.mark.asyncio |
438 | 503 | @pytest.mark.parametrize( |
439 | 504 | 'transport_setup_fixture', |
|
0 commit comments