mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-12 00:29:11 +02:00
59 lines
2.3 KiB
Python
59 lines
2.3 KiB
Python
import warnings
|
|
from unittest.mock import MagicMock, patch
|
|
|
|
import pytest
|
|
from starlette.requests import Request
|
|
|
|
from fastmcp.server.context import Context
|
|
|
|
|
|
class TestContextDeprecations:
|
|
def test_get_http_request_deprecation_warning(self):
|
|
"""Test that using Context.get_http_request() raises a deprecation warning."""
|
|
# Create a mock FastMCP instance
|
|
mock_fastmcp = MagicMock()
|
|
context = Context(fastmcp=mock_fastmcp)
|
|
|
|
# Patch the dependency function to return a mock request
|
|
mock_request = MagicMock(spec=Request)
|
|
with patch(
|
|
"fastmcp.server.dependencies.get_http_request", return_value=mock_request
|
|
):
|
|
# Check that the deprecation warning is raised
|
|
with pytest.warns(
|
|
DeprecationWarning, match="Context.get_http_request\\(\\) is deprecated"
|
|
):
|
|
request = context.get_http_request()
|
|
|
|
# Verify the function still works and returns the request
|
|
assert request is mock_request
|
|
|
|
def test_get_http_request_deprecation_message(self):
|
|
"""Test that the deprecation warning has the correct message with guidance."""
|
|
# Create a mock FastMCP instance
|
|
mock_fastmcp = MagicMock()
|
|
context = Context(fastmcp=mock_fastmcp)
|
|
|
|
# Patch the dependency function to return a mock request
|
|
mock_request = MagicMock(spec=Request)
|
|
with patch(
|
|
"fastmcp.server.dependencies.get_http_request", return_value=mock_request
|
|
):
|
|
# Capture and check the specific warning message
|
|
with warnings.catch_warnings(record=True) as w:
|
|
warnings.simplefilter("always")
|
|
context.get_http_request()
|
|
|
|
assert len(w) == 1
|
|
warning = w[0]
|
|
assert issubclass(warning.category, DeprecationWarning)
|
|
assert "Context.get_http_request() is deprecated" in str(
|
|
warning.message
|
|
)
|
|
assert (
|
|
"Use get_http_request() from fastmcp.server.dependencies instead"
|
|
in str(warning.message)
|
|
)
|
|
assert "https://gofastmcp.com/patterns/http-requests" in str(
|
|
warning.message
|
|
)
|