diff --git a/src/a2a/client/card_resolver.py b/src/a2a/client/card_resolver.py index b34c4e21..6d98a536 100644 --- a/src/a2a/client/card_resolver.py +++ b/src/a2a/client/card_resolver.py @@ -72,7 +72,9 @@ async def get_agent_card( else: path_segment = relative_card_path.lstrip('/') - target_url = f'{self.base_url}/{path_segment}' + target_url = ( + f'{self.base_url}/{path_segment}' if path_segment else self.base_url + ) try: response = await self.httpx_client.get( diff --git a/tests/client/test_card_resolver.py b/tests/client/test_card_resolver.py index b175d965..9a684a4a 100644 --- a/tests/client/test_card_resolver.py +++ b/tests/client/test_card_resolver.py @@ -203,7 +203,23 @@ async def test_get_agent_card_root_path( mock_response.json.return_value = valid_agent_card_data mock_httpx_client.get.return_value = mock_response await resolver.get_agent_card(relative_card_path='/') - mock_httpx_client.get.assert_called_once_with(f'{base_url}/') + mock_httpx_client.get.assert_called_once_with(f'{base_url}') + + @pytest.mark.asyncio + async def test_get_agent_card_with_empty_resolver_agent_card_path( + self, + base_url, + resolver, + mock_httpx_client, + mock_response, + valid_agent_card_data, + ): + """Test fetching agent card when the resolver's agent_card_path is empty.""" + resolver.agent_card_path = '' + mock_response.json.return_value = valid_agent_card_data + mock_httpx_client.get.return_value = mock_response + await resolver.get_agent_card() + mock_httpx_client.get.assert_called_once_with(f'{base_url}') @pytest.mark.asyncio async def test_get_agent_card_http_status_error(