mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-09 15:19:10 +02:00
* Initialize 2.14 deprecation removal branch * Remove deprecated FASTMCP_SERVER_ environment variable prefix (#2330) * Remove deprecated Context.get_http_request method (#2332) * Remove fastmcp.Image top-level import (deprecated 2.8.1) (#2334) * Remove test warnings (#2331) * Create new branch and fix issue * Remove deprecated client parameter from FastMCPProxy (#2333) * Remove deprecated run_streamable_http_async method (#2338) * Remove deprecated sse_app method (#2337) * Remove deprecated run_sse_async method (#2335) * Remove deprecated run_sse_async method * Update CLI and tests to use run_http_async(transport="sse") - Change CLI to call run_http_async with transport="sse" instead of run_sse_async - Update test to mock run_http_async with create=True for v1 servers * Revert CLI changes - v1 servers do have run_sse_async - Keep CLI calling run_sse_async() for v1 compatibility - Update test to mock run_sse_async (which exists on v1) * Remove unnecessary type ignore for run_sse_async Method exists on v1 FastMCP class, no type error * Remove unused imports after test deletion * Remove deprecated streamable_http_app method (#2336) * Remove deprecated dependencies parameter from FastMCP constructor (#2340) * Remove output_schema=False support (deprecated 2.11.4) (#2339) * Remove deprecated client parameter from FastMCPProxy (#2333) * Delete deprecated test_output_schema_false.py Tests functionality that has been removed * Remove deprecated BearerAuthProvider module (#2341) * Remove resource_prefix_format="protocol" support (deprecated 2.4.0) (#2342) * Remove resource_prefix_format="protocol" support (fixes #2195) Removes deprecated protocol format (prefix+resource://path) and keeps only path format (resource://prefix/path). Since only one format remains: - Removed resource_prefix_format from settings, FastMCP.__init__, and helpers - Simplified add_resource_prefix, remove_resource_prefix, has_resource_prefix - Removed MountedServer.resource_prefix_format field - Deleted tests for protocol format All resource prefixes now use path format exclusively. * Clean up resource_prefix_format references - Remove from test files - Update documentation to remove protocol format section - Move custom HTTP routes note to mounting section - Remove resource_prefix_format from settings docs * Use inline version note instead of badge for prefix format * Remove obsolete test functions and update docs - Delete test functions that no longer assert anything - Remove proxy.mdx reference to deleted prefix format section * Format error messages per ruff * Remove from_client classmethod (deprecated 2.8.0) (#2343) * Remove deprecated from_client classmethod (fixes #2192) * Remove unused Client import * Remove add_resource_fn method (deprecated 2.7.0) (#2345) * Update SDK * Add missing imports for exclude_args deprecation warning
48 lines
1.8 KiB
Python
48 lines
1.8 KiB
Python
import warnings
|
|
|
|
import pytest
|
|
from starlette.applications import Starlette
|
|
|
|
from fastmcp import 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
|