1- from drivers .lsp_python_driver import LSP , complex_test
2- from drivers .lsp_ada_requests import (
3- didOpen_from_disk ,
4- prepareCallHierarchy ,
5- incomingCalls ,
6- initialize ,
7- initialized ,
8- didChangeConfiguration ,
9- )
101import os
112
3+ from drivers .pylsp import URI , ALSLanguageClient , test
4+ from lsprotocol .types import ClientCapabilities , InitializedParams , InitializeParams
125
13- # Use a complex_test rather than a simple_test
14- # so we can inspect the results of initialize()
15- @complex_test
16- def test_called_by (wd ) -> list [str ] | None :
17- program = os .environ .get ("ALS" , "ada_language_server" )
18- lsp = LSP (program , wd )
6+
7+ # Use initialize=False so we can inspect the results of the initialize request
8+ @test (initialize = False )
9+ async def test_called_by (lsp : ALSLanguageClient ) -> None :
1910 # Send the initialize request
20- response = lsp .send (initialize ())
11+ response = await lsp .initialize_session (
12+ InitializeParams (ClientCapabilities (), root_uri = URI (os .getcwd ()))
13+ )
2114 # Verify that the right capability is advertised
22- response . assertField ( " capabilities.callHierarchyProvider" , True )
15+ lsp . assertEqual ( response . capabilities .call_hierarchy_provider , True )
2316
2417 # Send the initialized notification and the didChangeConfiguration notification
25- lsp .send (initialized ())
26- lsp .send (didChangeConfiguration ())
27- # Send a didOpen for main.adb
28- main_adb = os .path .join (wd , "main.adb" )
29- p_adb = os .path .join (wd , "p.adb" )
18+ lsp .initialized (InitializedParams ())
19+ lsp .didChangeConfig ({})
3020
31- lsp .send (didOpen_from_disk (main_adb ))
21+ # Send a didOpen for main.adb
22+ main_adb = lsp .didOpenFile ("main.adb" )
3223
3324 # Send a textDocument/prepareCallHierarchy request
34- response = lsp .send ( prepareCallHierarchy (main_adb , 3 , 44 ) )
35- response .assertLocationsList ([("p.adb" , 2 )])
25+ res1 = await lsp .prepareCallHierarchy (main_adb , 3 , 44 )
26+ lsp .assertLocationsList (res1 , [("p.adb" , 2 )])
3627
3728 # Now send the callHierarchy/incomingCalls request
38- response = lsp .send (incomingCalls (p_adb , 2 , 14 ))
29+ p_adb = URI ("p.adb" )
30+ res2 = await lsp .callHierarchyIncomingCalls (p_adb , 2 , 14 )
3931
4032 # Expect these locations
41- response .assertLocationsList (
33+ lsp .assertLocationsList (
34+ res2 ,
4235 [
4336 ("main.adb" , 10 ),
4437 ("main.adb" , 14 ),
4538 ("p.adb" , 2 ),
4639 ("main.adb" , 2 ),
4740 ("p.ads" , 1 ),
4841 ("p.adb" , 8 ),
49- ]
42+ ],
5043 )
51- lsp .shutdown ()
52- return []
0 commit comments