18
18
async def test_list_prompts_pagination () -> None :
19
19
server = Server ("test" )
20
20
test_cursor = "test-cursor-123"
21
-
21
+
22
22
# Track what cursor was received
23
23
received_cursor : Cursor | None = None
24
-
24
+
25
25
@server .list_prompts_paginated ()
26
26
async def handle_list_prompts (cursor : Cursor | None ) -> ListPromptsResult :
27
27
nonlocal received_cursor
28
28
received_cursor = cursor
29
29
return ListPromptsResult (prompts = [], nextCursor = "next" )
30
-
30
+
31
31
handler = server .request_handlers [ListPromptsRequest ]
32
-
32
+
33
33
# Test: No cursor provided -> handler receives None
34
34
request = ListPromptsRequest (method = "prompts/list" , params = None )
35
35
result = await handler (request )
36
36
assert received_cursor is None
37
37
assert isinstance (result , ServerResult )
38
-
38
+
39
39
# Test: Cursor provided -> handler receives exact cursor value
40
- request_with_cursor = ListPromptsRequest (
41
- method = "prompts/list" ,
42
- params = PaginatedRequestParams (cursor = test_cursor )
43
- )
40
+ request_with_cursor = ListPromptsRequest (method = "prompts/list" , params = PaginatedRequestParams (cursor = test_cursor ))
44
41
result2 = await handler (request_with_cursor )
45
42
assert received_cursor == test_cursor
46
43
assert isinstance (result2 , ServerResult )
@@ -50,28 +47,27 @@ async def handle_list_prompts(cursor: Cursor | None) -> ListPromptsResult:
50
47
async def test_list_resources_pagination () -> None :
51
48
server = Server ("test" )
52
49
test_cursor = "resource-cursor-456"
53
-
50
+
54
51
# Track what cursor was received
55
52
received_cursor : Cursor | None = None
56
-
53
+
57
54
@server .list_resources_paginated ()
58
55
async def handle_list_resources (cursor : Cursor | None ) -> ListResourcesResult :
59
56
nonlocal received_cursor
60
57
received_cursor = cursor
61
58
return ListResourcesResult (resources = [], nextCursor = "next" )
62
-
59
+
63
60
handler = server .request_handlers [ListResourcesRequest ]
64
-
61
+
65
62
# Test: No cursor provided -> handler receives None
66
63
request = ListResourcesRequest (method = "resources/list" , params = None )
67
64
result = await handler (request )
68
65
assert received_cursor is None
69
66
assert isinstance (result , ServerResult )
70
-
67
+
71
68
# Test: Cursor provided -> handler receives exact cursor value
72
69
request_with_cursor = ListResourcesRequest (
73
- method = "resources/list" ,
74
- params = PaginatedRequestParams (cursor = test_cursor )
70
+ method = "resources/list" , params = PaginatedRequestParams (cursor = test_cursor )
75
71
)
76
72
result2 = await handler (request_with_cursor )
77
73
assert received_cursor == test_cursor
@@ -82,29 +78,26 @@ async def handle_list_resources(cursor: Cursor | None) -> ListResourcesResult:
82
78
async def test_list_tools_pagination () -> None :
83
79
server = Server ("test" )
84
80
test_cursor = "tools-cursor-789"
85
-
81
+
86
82
# Track what cursor was received
87
83
received_cursor : Cursor | None = None
88
-
84
+
89
85
@server .list_tools_paginated ()
90
86
async def handle_list_tools (cursor : Cursor | None ) -> ListToolsResult :
91
87
nonlocal received_cursor
92
88
received_cursor = cursor
93
89
return ListToolsResult (tools = [], nextCursor = "next" )
94
-
90
+
95
91
handler = server .request_handlers [ListToolsRequest ]
96
-
92
+
97
93
# Test: No cursor provided -> handler receives None
98
94
request = ListToolsRequest (method = "tools/list" , params = None )
99
95
result = await handler (request )
100
96
assert received_cursor is None
101
97
assert isinstance (result , ServerResult )
102
-
98
+
103
99
# Test: Cursor provided -> handler receives exact cursor value
104
- request_with_cursor = ListToolsRequest (
105
- method = "tools/list" ,
106
- params = PaginatedRequestParams (cursor = test_cursor )
107
- )
100
+ request_with_cursor = ListToolsRequest (method = "tools/list" , params = PaginatedRequestParams (cursor = test_cursor ))
108
101
result2 = await handler (request_with_cursor )
109
102
assert received_cursor == test_cursor
110
103
assert isinstance (result2 , ServerResult )
0 commit comments