refactor: remove request_ctx ContextVar, thread Context explicitly (#2203)
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
This commit is contained in:
parent
62575edabd
commit
cc22bf5464
1 changed files with 484 additions and 413 deletions
|
|
@ -891,7 +891,7 @@ class TestServerResourceTemplates:
|
|||
assert len(await mcp.list_resources()) == 0
|
||||
|
||||
# When accessed, should create a concrete resource
|
||||
resource = await mcp._resource_manager.get_resource("resource://test/data")
|
||||
resource = await mcp._resource_manager.get_resource("resource://test/data", Context())
|
||||
assert isinstance(resource, FunctionResource)
|
||||
result = await resource.read()
|
||||
assert result == "Data for test"
|
||||
|
|
@ -1231,6 +1231,19 @@ class TestContextInjection:
|
|||
class TestServerPrompts:
|
||||
"""Test prompt functionality in MCPServer server."""
|
||||
|
||||
async def test_get_prompt_direct_call_without_context(self):
|
||||
"""Test calling mcp.get_prompt() directly without passing context."""
|
||||
mcp = MCPServer()
|
||||
|
||||
@mcp.prompt()
|
||||
def fn() -> str:
|
||||
return "Hello, world!"
|
||||
|
||||
result = await mcp.get_prompt("fn")
|
||||
content = result.messages[0].content
|
||||
assert isinstance(content, TextContent)
|
||||
assert content.text == "Hello, world!"
|
||||
|
||||
async def test_prompt_decorator(self):
|
||||
"""Test that the prompt decorator registers prompts correctly."""
|
||||
mcp = MCPServer()
|
||||
|
|
@ -1243,7 +1256,7 @@ class TestServerPrompts:
|
|||
assert len(prompts) == 1
|
||||
assert prompts[0].name == "fn"
|
||||
# Don't compare functions directly since validate_call wraps them
|
||||
content = await prompts[0].render()
|
||||
content = await prompts[0].render(None, Context())
|
||||
assert isinstance(content[0].content, TextContent)
|
||||
assert content[0].content.text == "Hello, world!"
|
||||
|
||||
|
|
@ -1258,7 +1271,7 @@ class TestServerPrompts:
|
|||
prompts = mcp._prompt_manager.list_prompts()
|
||||
assert len(prompts) == 1
|
||||
assert prompts[0].name == "custom_name"
|
||||
content = await prompts[0].render()
|
||||
content = await prompts[0].render(None, Context())
|
||||
assert isinstance(content[0].content, TextContent)
|
||||
assert content[0].content.text == "Hello, world!"
|
||||
|
||||
|
|
@ -1273,7 +1286,7 @@ class TestServerPrompts:
|
|||
prompts = mcp._prompt_manager.list_prompts()
|
||||
assert len(prompts) == 1
|
||||
assert prompts[0].description == "A custom description"
|
||||
content = await prompts[0].render()
|
||||
content = await prompts[0].render(None, Context())
|
||||
assert isinstance(content[0].content, TextContent)
|
||||
assert content[0].content.text == "Hello, world!"
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue