@@ -237,100 +237,6 @@ def grep(params) -> str:
237237 await client .force_stop ()
238238
239239
240- class TestSkipPermission :
241- @pytest .mark .asyncio
242- async def test_skip_permission_sent_in_tool_definition (self ):
243- client = CopilotClient ({"cli_path" : CLI_PATH })
244- await client .start ()
245-
246- try :
247- captured = {}
248- original_request = client ._client .request
249-
250- async def mock_request (method , params ):
251- captured [method ] = params
252- return await original_request (method , params )
253-
254- client ._client .request = mock_request
255-
256- @define_tool (description = "Safe lookup" , skip_permission = True )
257- def safe_lookup (params ) -> str :
258- return "ok"
259-
260- await client .create_session (
261- {"tools" : [safe_lookup ], "on_permission_request" : PermissionHandler .approve_all }
262- )
263- tool_defs = captured ["session.create" ]["tools" ]
264- assert len (tool_defs ) == 1
265- assert tool_defs [0 ]["name" ] == "safe_lookup"
266- assert tool_defs [0 ]["skipPermission" ] is True
267- assert "overridesBuiltInTool" not in tool_defs [0 ]
268- finally :
269- await client .force_stop ()
270-
271- @pytest .mark .asyncio
272- async def test_resume_session_sends_skip_permission (self ):
273- client = CopilotClient ({"cli_path" : CLI_PATH })
274- await client .start ()
275-
276- try :
277- session = await client .create_session (
278- {"on_permission_request" : PermissionHandler .approve_all }
279- )
280-
281- captured = {}
282- original_request = client ._client .request
283-
284- async def mock_request (method , params ):
285- captured [method ] = params
286- return await original_request (method , params )
287-
288- client ._client .request = mock_request
289-
290- @define_tool (description = "Safe lookup" , skip_permission = True )
291- def safe_lookup (params ) -> str :
292- return "ok"
293-
294- await client .resume_session (
295- session .session_id ,
296- {"tools" : [safe_lookup ], "on_permission_request" : PermissionHandler .approve_all },
297- )
298- tool_defs = captured ["session.resume" ]["tools" ]
299- assert len (tool_defs ) == 1
300- assert tool_defs [0 ]["skipPermission" ] is True
301- assert "overridesBuiltInTool" not in tool_defs [0 ]
302- finally :
303- await client .force_stop ()
304-
305- @pytest .mark .asyncio
306- async def test_skip_permission_omitted_when_false (self ):
307- client = CopilotClient ({"cli_path" : CLI_PATH })
308- await client .start ()
309-
310- try :
311- captured = {}
312- original_request = client ._client .request
313-
314- async def mock_request (method , params ):
315- captured [method ] = params
316- return await original_request (method , params )
317-
318- client ._client .request = mock_request
319-
320- @define_tool (description = "Normal tool" )
321- def normal_tool (params ) -> str :
322- return "ok"
323-
324- await client .create_session (
325- {"tools" : [normal_tool ], "on_permission_request" : PermissionHandler .approve_all }
326- )
327- tool_defs = captured ["session.create" ]["tools" ]
328- assert len (tool_defs ) == 1
329- assert "skipPermission" not in tool_defs [0 ]
330- finally :
331- await client .force_stop ()
332-
333-
334240class TestOnListModels :
335241 @pytest .mark .asyncio
336242 async def test_list_models_with_custom_handler (self ):
0 commit comments