bingMapsMCP/test_traffic_layer.py

45 lines
1.3 KiB
Python
Raw Permalink Normal View History

2026-02-04 00:58:10 +00:00
import pytest
import os
import base64
from unittest.mock import MagicMock
from azure_maps_mcp import get_static_map, GetStaticMapInput
# Read API Key
try:
with open(".apikey", "r") as f:
API_KEY = f.read().strip()
except FileNotFoundError:
API_KEY = "dummy_key"
@pytest.fixture
def mock_context():
return MagicMock()
@pytest.fixture(autouse=True)
def setup_env():
os.environ["AZURE_MAPS_SUBSCRIPTION_KEY"] = API_KEY
yield
if "AZURE_MAPS_SUBSCRIPTION_KEY" in os.environ:
del os.environ["AZURE_MAPS_SUBSCRIPTION_KEY"]
@pytest.mark.asyncio
async def test_get_static_map_traffic(mock_context):
"""Test retrieving a map with the Traffic layer."""
params = GetStaticMapInput(
centerPoint="47.610,-122.107",
zoomLevel=12,
mapLayer="Traffic"
)
# We can't easily inspect the internal URL construction without mocking httpx,
# but we can verify that the call succeeds (returns valid image data)
# which implies the parameters were valid enough for Azure.
result = await get_static_map(params, mock_context)
if "error" in result:
pytest.fail(f"Tool returned error: {result['error']}")
assert result["image_data_base64"] is not None
img_data = base64.b64decode(result["image_data_base64"])
assert len(img_data) > 0