@@ -518,6 +518,10 @@ async def async_tool(x: int, ctx: Context) -> str:
518518
519519 @pytest .mark .anyio
520520 async def test_context_logging (self ):
521+ from unittest .mock import patch
522+
523+ import mcp .server .session
524+
521525 """Test that context logging methods work."""
522526 mcp = FastMCP ()
523527
@@ -529,12 +533,26 @@ async def logging_tool(msg: str, ctx: Context) -> str:
529533 return f"Logged messages for { msg } "
530534
531535 mcp .add_tool (logging_tool )
532- async with client_session (mcp ._mcp_server ) as client :
533- result = await client .call_tool ("logging_tool" , {"msg" : "test" })
534- assert len (result .content ) == 1
535- content = result .content [0 ]
536- assert isinstance (content , TextContent )
537- assert "Logged messages for test" in content .text
536+
537+ with patch ("mcp.server.session.ServerSession.send_log_message" ) as mock_log :
538+ async with client_session (mcp ._mcp_server ) as client :
539+ result = await client .call_tool ("logging_tool" , {"msg" : "test" })
540+ assert len (result .content ) == 1
541+ content = result .content [0 ]
542+ assert isinstance (content , TextContent )
543+ assert "Logged messages for test" in content .text
544+
545+ assert mock_log .call_count == 4
546+ mock_log .assert_any_call (
547+ level = "debug" , data = "Debug message" , logger = None
548+ )
549+ mock_log .assert_any_call (level = "info" , data = "Info message" , logger = None )
550+ mock_log .assert_any_call (
551+ level = "warning" , data = "Warning message" , logger = None
552+ )
553+ mock_log .assert_any_call (
554+ level = "error" , data = "Error message" , logger = None
555+ )
538556
539557 @pytest .mark .anyio
540558 async def test_optional_context (self ):
@@ -563,8 +581,8 @@ def test_resource() -> str:
563581
564582 @mcp .tool ()
565583 async def tool_with_resource (ctx : Context ) -> str :
566- data , mime_type = await ctx .read_resource ("test://data" )
567- return f"Read resource: { data } with mime type { mime_type } "
584+ data = await ctx .read_resource ("test://data" )
585+ return f"Read resource: { data } "
568586
569587 async with client_session (mcp ._mcp_server ) as client :
570588 result = await client .call_tool ("tool_with_resource" , {})
0 commit comments