import pytest
import asyncio
from swiss_meteo_mcp import server
@pytest.mark.asyncio
async def test_get_temperature_tool_response(monkeypatch):
# Mock httpx.AsyncClient.get to return a fake response
class MockResponse:
def __init__(self, status_code, json_data):
self.status_code = status_code
self._json = json_data
def json(self):
return self._json
class MockAsyncClient:
async def __aenter__(self):
return self
async def __aexit__(self, exc_type, exc, tb):
pass
async def get(self, url):
assert "Bern" in url
return MockResponse(200, {
"current_condition": [
{
"temp_C": "20",
"weatherDesc": [{"value": "Sunny"}]
}
]
})
monkeypatch.setattr(server.httpx, "AsyncClient", lambda: MockAsyncClient())
result = await server.get_temperature_tool_response("Bern")
assert isinstance(result, list)
assert result[0].text.startswith("The current temperature in Bern is")