refactor: add mcp source client facade

This commit is contained in:
lda
2026-06-07 17:34:39 +07:00 Verified
parent f6fa12a011
commit c3de026d46
9 changed files with 386 additions and 65 deletions
+10 -7
View File
@@ -18,6 +18,7 @@ from mcp.types import (
)
from pydantic import AnyUrl
from wf_sources_mcp.client import McpSourceClient
from wf_sources_mcp.connections import McpSourceConnection
from wf_sources_mcp.sdk import BackendAdapter, McpSdkAdapter
from wf_sources_mcp.transports import StdioSourceTransport
@@ -135,12 +136,12 @@ class _FakeSession:
)
class _SessionContext:
def __init__(self, session: _FakeSession) -> None:
self.session = session
class _ClientContext:
def __init__(self, client: McpSourceClient) -> None:
self.client = client
async def __aenter__(self) -> _FakeSession:
return self.session
async def __aenter__(self) -> McpSourceClient:
return self.client
async def __aexit__(
self,
@@ -155,10 +156,12 @@ class _FakeAdapter(McpSdkAdapter):
def __init__(self, session: _FakeSession) -> None:
self.fake_session = session
def _session(self, connection: McpSourceConnection, auth: object | None):
def _client(self, connection: McpSourceConnection, auth: object | None):
assert connection.id == "demo.personal"
assert auth is None
return _SessionContext(self.fake_session)
return _ClientContext(
McpSourceClient(session=self.fake_session, connection=connection)
)
def test_mcp_sdk_adapter_implements_backend_protocol() -> None: