mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-21 13:04:18 +02:00
Note that get_http_request is deprecated
This commit is contained in:
parent
6ed95abbde
commit
4b4d806fd5
2 changed files with 69 additions and 0 deletions
|
|
@ -1,5 +1,6 @@
|
|||
from __future__ import annotations as _annotations
|
||||
|
||||
import warnings
|
||||
from collections.abc import Generator
|
||||
from contextlib import contextmanager
|
||||
from contextvars import ContextVar, Token
|
||||
|
|
@ -234,4 +235,13 @@ class Context:
|
|||
def get_http_request(self) -> Request:
|
||||
"""Get the active starlette request."""
|
||||
|
||||
# Deprecation warning, added in FastMCP 2.2.11
|
||||
warnings.warn(
|
||||
"Context.get_http_request() is deprecated and will be removed in a future version. "
|
||||
"Use get_http_request() from fastmcp.server.dependencies instead. "
|
||||
"See https://gofastmcp.com/patterns/http-requests for more details.",
|
||||
DeprecationWarning,
|
||||
stacklevel=2,
|
||||
)
|
||||
|
||||
return fastmcp.server.dependencies.get_http_request()
|
||||
|
|
|
|||
59
tests/server/test_context.py
Normal file
59
tests/server/test_context.py
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
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
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue