Skip to content

Commit 6ca3bee

Browse files
Improve coverage
1 parent c1d6b00 commit 6ca3bee

File tree

2 files changed

+34
-11
lines changed

2 files changed

+34
-11
lines changed

src/a2a/server/apps/rest/rest_adapter.py

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -149,11 +149,9 @@ async def handle_get_agent_card(
149149
if self.card_modifier:
150150
card_to_serve = self.card_modifier(card_to_serve)
151151

152-
return JSONResponse(
153-
card_to_serve.model_dump(
154-
exclude_none=True,
155-
by_alias=True,
156-
)
152+
return card_to_serve.model_dump(
153+
exclude_none=True,
154+
by_alias=True,
157155
)
158156

159157
@rest_error_handler
@@ -187,11 +185,9 @@ async def handle_authenticated_agent_card(
187185
card_to_serve = self.extended_card_modifier(base_card, context)
188186

189187
if card_to_serve:
190-
return JSONResponse(
191-
card_to_serve.model_dump(
192-
exclude_none=True,
193-
by_alias=True,
194-
)
188+
return card_to_serve.model_dump(
189+
exclude_none=True,
190+
by_alias=True,
195191
)
196192
# If supports_authenticated_extended_card is true, but no
197193
# extended_agent_card was provided, and no modifier produced a card,
@@ -253,7 +249,7 @@ def routes(self) -> dict[tuple[str, str], Callable[[Request], Any]]:
253249
('/v1/tasks', 'GET'): functools.partial(
254250
self._handle_request, self.handler.list_tasks
255251
),
256-
('v1/well_known/agent_json', 'GET'): functools.partial(
252+
('/v1/well_known/agent_json', 'GET'): functools.partial(
257253
self._handle_request, self.handle_get_agent_card
258254
),
259255
}

tests/integration/test_client_server_integration.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -717,6 +717,33 @@ async def test_http_transport_get_card(
717717
await transport.close()
718718

719719

720+
@pytest.mark.asyncio
721+
async def test_http_transport_get_authenticated_card(
722+
agent_card: AgentCard,
723+
mock_request_handler: AsyncMock,
724+
) -> None:
725+
agent_card.supports_authenticated_extended_card = True
726+
extended_agent_card = agent_card.model_copy(deep=True)
727+
extended_agent_card.name = 'Extended Agent Card'
728+
729+
app_builder = A2ARESTFastAPIApplication(
730+
agent_card,
731+
mock_request_handler,
732+
extended_agent_card=extended_agent_card,
733+
)
734+
app = app_builder.build()
735+
httpx_client = httpx.AsyncClient(transport=httpx.ASGITransport(app=app))
736+
737+
transport = RestTransport(httpx_client=httpx_client, agent_card=agent_card)
738+
result = await transport.get_card()
739+
assert result.name == extended_agent_card.name
740+
assert transport.agent_card.name == extended_agent_card.name
741+
assert transport._needs_extended_card is False
742+
743+
if hasattr(transport, 'close'):
744+
await transport.close()
745+
746+
720747
@pytest.mark.asyncio
721748
async def test_grpc_transport_get_card(
722749
grpc_server_and_handler: tuple[str, AsyncMock],

0 commit comments

Comments
 (0)