Skip to main content
Glama
conftest.py2.64 kB
# mainly copied from here: # https://github.com/modelcontextprotocol/python-sdk/blob/babb477dffa33f46cdc886bc885eb1d521151430/tests/shared/test_memory.py#L1-L48 import pytest from efoli import EdifactFormatVersion from mcp.client.session import ClientSession from mcp.server import FastMCP from mcp.shared.memory import ( create_connected_server_and_client_session, ) from transformerbeeclient import BOneyComb, Marktnachricht, TransformerBeeClient from typing_extensions import AsyncGenerator, Literal import transformerbeemcp.server as _transformerbeeservermodule from transformerbeemcp import mcp @pytest.fixture def anyio_backend() -> Literal["asyncio"]: return "asyncio" # pylint:disable=unused-argument class DummyClient(TransformerBeeClient): """ We mock the client because the transformer.bee client alone is already integration tested against the real backend. That's the big benefit of having client libraries and proper encapsulation instead of HTTP calls everywhere. """ def __init__(self, host: str) -> None: self.host = host TransformerBeeClient.__init__(self) async def convert_to_edifact(self, boney_comb: BOneyComb, edifact_format_version: EdifactFormatVersion) -> str: return "dummy_edifact_message" async def convert_to_bo4e(self, edifact: str, edifact_format_version: EdifactFormatVersion) -> list[Marktnachricht]: """convert the given edifact to a list of marktnachrichten""" return [ Marktnachricht( stammdaten=[], transaktionen=[BOneyComb(stammdaten=[], transaktionsdaten={"foo": "bar"})], nachrichtendaten={}, UNH="dummy_unh", ) ] @pytest.fixture def inject_dummy_client(monkeypatch: pytest.MonkeyPatch) -> None: def fake_create_client(host: str, client_id: str | None, client_secret: str | None) -> TransformerBeeClient: return DummyClient(host) # pylint:disable=protected-access monkeypatch.setattr(_transformerbeeservermodule, "create_client", fake_create_client) @pytest.fixture def transformerbee_mcp_server() -> FastMCP: server = mcp return server @pytest.fixture async def client_connected_to_server( transformerbee_mcp_server: FastMCP, monkeypatch: pytest.MonkeyPatch, inject_dummy_client: None ) -> AsyncGenerator[ClientSession, None]: monkeypatch.setenv("TRANSFORMERBEE_HOST", "https://mock.com") # pylint:disable=protected-access async with create_connected_server_and_client_session(transformerbee_mcp_server._mcp_server) as client_session: yield client_session

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/Hochfrequenz/TransformerBee.mcp'

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