FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
python-sdk/tests/client/test_list_roots_callback.py at main · devilcoder/python-sdk · GitHub
devilcoder
/
python-sdk
Public
forked from
modelcontextprotocol/python-sdk
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
python-sdk
/
tests
/
client
/
test_list_roots_callback.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
66 lines (57 loc) · 2.14 KB
Breadcrumbs
python-sdk
/
tests
/
client
/
test_list_roots_callback.py
Copy path
File metadata and controls
66 lines (57 loc) · 2.14 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import
pytest
from
pydantic
import
FileUrl
from
mcp
.
client
.
session
import
ClientSession
from
mcp
.
server
.
fastmcp
.
server
import
Context
from
mcp
.
shared
.
context
import
RequestContext
from
mcp
.
shared
.
memory
import
(
create_connected_server_and_client_session
as
create_session
,
)
from
mcp
.
types
import
ListRootsResult
,
Root
,
TextContent
@
pytest
.
mark
.
anyio
async
def
test_list_roots_callback
():
from
mcp
.
server
.
fastmcp
import
FastMCP
server
=
FastMCP
(
"test"
)
callback_return
=
ListRootsResult
(
roots
=
[
Root
(
uri
=
FileUrl
(
"file://users/fake/test"
),
name
=
"Test Root 1"
,
),
Root
(
uri
=
FileUrl
(
"file://users/fake/test/2"
),
name
=
"Test Root 2"
,
),
]
)
async
def
list_roots_callback
(
context
:
RequestContext
[
ClientSession
,
None
],
)
->
ListRootsResult
:
return
callback_return
@
server
.
tool
(
"test_list_roots"
)
async
def
test_list_roots
(
context
:
Context
,
message
:
str
):
# type: ignore[reportUnknownMemberType]
roots
=
await
context
.
session
.
list_roots
()
assert
roots
==
callback_return
return
True
# Test with list_roots callback
async
with
create_session
(
server
.
_mcp_server
,
list_roots_callback
=
list_roots_callback
)
as
client_session
:
# Make a request to trigger sampling callback
result
=
await
client_session
.
call_tool
(
"test_list_roots"
, {
"message"
:
"test message"
}
)
assert
result
.
isError
is
False
assert
isinstance
(
result
.
content
[
0
],
TextContent
)
assert
result
.
content
[
0
].
text
==
"true"
# Test without list_roots callback
async
with
create_session
(
server
.
_mcp_server
)
as
client_session
:
# Make a request to trigger sampling callback
result
=
await
client_session
.
call_tool
(
"test_list_roots"
, {
"message"
:
"test message"
}
)
assert
result
.
isError
is
True
assert
isinstance
(
result
.
content
[
0
],
TextContent
)
assert
(
result
.
content
[
0
].
text
==
"Error executing tool test_list_roots: List roots not supported"
)
Back
|
FazBrowse Home
|
New Git URL