mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-24 14:34:17 +02:00
55 lines
2.1 KiB
Python
55 lines
2.1 KiB
Python
import warnings
|
|
|
|
import pytest
|
|
from starlette.applications import Starlette
|
|
|
|
from fastmcp import Client, FastMCP
|
|
from fastmcp.utilities.tests import temporary_settings
|
|
|
|
# reset deprecation warnings for this module
|
|
pytestmark = pytest.mark.filterwarnings("default::DeprecationWarning")
|
|
|
|
|
|
class TestDeprecationWarningsSetting:
|
|
def test_deprecation_warnings_setting_true(self):
|
|
with temporary_settings(deprecation_warnings=True):
|
|
with pytest.warns(DeprecationWarning) as recorded_warnings:
|
|
# will warn once for providing deprecated arg
|
|
mcp = FastMCP(host="1.2.3.4")
|
|
# will warn once for accessing deprecated property
|
|
mcp.settings
|
|
|
|
assert len(recorded_warnings) == 2
|
|
|
|
def test_deprecation_warnings_setting_false(self):
|
|
with temporary_settings(deprecation_warnings=False):
|
|
# will error if a warning is raised
|
|
with warnings.catch_warnings():
|
|
warnings.simplefilter("error")
|
|
# will warn once for providing deprecated arg
|
|
mcp = FastMCP(host="1.2.3.4")
|
|
# will warn once for accessing deprecated property
|
|
mcp.settings
|
|
|
|
|
|
def test_http_app_with_sse_transport():
|
|
"""Test that http_app with SSE transport works (no warning)."""
|
|
server = FastMCP("TestServer")
|
|
|
|
# This should not raise a warning since we're using the new API
|
|
with warnings.catch_warnings(record=True) as recorded_warnings:
|
|
app = server.http_app(transport="sse")
|
|
assert isinstance(app, Starlette)
|
|
|
|
# Verify no deprecation warnings were raised for using transport parameter
|
|
deprecation_warnings = [
|
|
w for w in recorded_warnings if issubclass(w.category, DeprecationWarning)
|
|
]
|
|
assert len(deprecation_warnings) == 0
|
|
|
|
|
|
def test_from_client_deprecation_warning():
|
|
"""Test that FastMCP.from_client raises a deprecation warning."""
|
|
server = FastMCP("TestServer")
|
|
with pytest.warns(DeprecationWarning, match="from_client"):
|
|
FastMCP.from_client(Client(server))
|