<!-- CURSOR_SUMMARY --> > [!NOTE] > **Medium Risk** > Touches multiple toolkits’ runtime entrypoints and context/error/auth plumbing, so breakage risk is mainly around invocation/packaging and tool execution wiring rather than business logic. > > **Overview** > Migrates the BrightData, ClickHouse, LinkedIn, Math, MongoDB, Postgres, and Zendesk OSS toolkits from `arcade-tdk` to `arcade-mcp-server` APIs by updating tool decorators, `Context` types, auth classes, and exception imports. > > Adds per-toolkit `__main__.py` files that construct an `MCPApp`, register module tools, and run via configurable transport/host/port; corresponding `pyproject.toml` updates bump versions, drop `arcade-tdk`/`arcade-serve` deps, and add `project.scripts` console entrypoints. > > Updates tests and eval suites to use `arcade_mcp_server.Context` (mocked) and switches eval `ToolCatalog` imports to `arcade_core`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 9b3e31acb4b35e1d72efd47e2d279c5b19e3ecb0. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
24 lines
736 B
Python
24 lines
736 B
Python
from unittest.mock import MagicMock
|
|
|
|
import pytest
|
|
from arcade_mcp_server import Context
|
|
|
|
|
|
@pytest.fixture
|
|
def tool_context():
|
|
"""Fixture for the tool Context with mock authorization."""
|
|
context = MagicMock(spec=Context)
|
|
authorization = MagicMock()
|
|
authorization.token = "test_token" # noqa: S105
|
|
authorization.user_info = {"sub": "test_user"}
|
|
context.authorization = authorization
|
|
return context
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_httpx_client(mocker):
|
|
"""Fixture to mock the httpx.AsyncClient."""
|
|
# Mock the AsyncClient context manager
|
|
mock_client = mocker.patch("httpx.AsyncClient", autospec=True)
|
|
async_mock_client = mock_client.return_value.__aenter__.return_value
|
|
return async_mock_client
|