Skip to main content
Glama
test_server.py3.32 kB
import pytest from fastmcp import Client from src.server import create_server pytestmark = pytest.mark.asyncio async def test_web_search_tool_returns_payload(fourget_server, mock_api) -> None: api, _ = mock_api api.add_json( '/api/v1/web', {'status': 'ok', 'npt': 'token', 'web': [{'title': 'Test', 'url': 'https://example.com'}]}, ) async with Client(fourget_server) as client: result = await client.call_tool( 'fourget_web_search', {'query': 'fastmcp'}, ) assert result.data['status'] == 'ok' assert len(api.calls) == 1 async def test_web_search_tool_respects_cache(fourget_server, mock_api) -> None: api, _ = mock_api api.add_json( '/api/v1/web', {'status': 'ok', 'npt': None, 'web': []}, ) async with Client(fourget_server) as client: await client.call_tool('fourget_web_search', {'query': 'fastmcp'}) await client.call_tool('fourget_web_search', {'query': 'fastmcp'}) assert len(api.calls) == 1 async def test_image_search_tool_targets_correct_endpoint(mock_api, config) -> None: api, transport = mock_api api.add_json( '/api/v1/images', {'status': 'ok', 'image': []}, ) server = create_server(config=config, transport=transport) async with Client(server) as client: result = await client.call_tool( 'fourget_image_search', {'query': 'cats'}, ) assert result.data['status'] == 'ok' assert any(request.url.path == '/api/v1/images' for request in api.calls) async def test_news_search_tool_targets_correct_endpoint(mock_api, config) -> None: api, transport = mock_api api.add_json( '/api/v1/news', {'status': 'ok', 'news': []}, ) server = create_server(config=config, transport=transport) async with Client(server) as client: result = await client.call_tool( 'fourget_news_search', {'query': 'ai'}, ) assert result.data['status'] == 'ok' assert any(request.url.path == '/api/v1/news' for request in api.calls) async def test_web_search_engine_sets_scraper_param(fourget_server, mock_api) -> None: api, _ = mock_api api.add_json( '/api/v1/web', {'status': 'ok', 'npt': None, 'web': []}, ) async with Client(fourget_server) as client: await client.call_tool( 'fourget_web_search', {'query': 'fastmcp', 'engine': 'mullvad_brave'}, ) assert len(api.calls) == 1 params = dict(api.calls[0].url.params) assert params.get('scraper') == 'mullvad_brave' async def test_engine_overrides_scraper_in_extra_params(fourget_server, mock_api) -> None: api, _ = mock_api api.add_json( '/api/v1/web', {'status': 'ok', 'npt': None, 'web': []}, ) async with Client(fourget_server) as client: await client.call_tool( 'fourget_web_search', { 'query': 'fastmcp', 'engine': 'brave', 'extra_params': {'scraper': 'ddg', 'country': 'de'}, }, ) assert len(api.calls) == 1 params = dict(api.calls[0].url.params) assert params.get('scraper') == 'brave' assert params.get('country') == 'de'

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yshalsager/mcp-4get'

If you have feedback or need assistance with the MCP directory API, please join our Discord server