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
- )
10
1
import os
11
2
3
+ from drivers .pylsp import URI , ALSLanguageClient , test
4
+ from lsprotocol .types import ClientCapabilities , InitializedParams , InitializeParams
12
5
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 :
19
10
# Send the initialize request
20
- response = lsp .send (initialize ())
11
+ response = await lsp .initialize_session (
12
+ InitializeParams (ClientCapabilities (), root_uri = URI (os .getcwd ()))
13
+ )
21
14
# Verify that the right capability is advertised
22
- response . assertField ( " capabilities.callHierarchyProvider" , True )
15
+ lsp . assertEqual ( response . capabilities .call_hierarchy_provider , True )
23
16
24
17
# 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 ({})
30
20
31
- lsp .send (didOpen_from_disk (main_adb ))
21
+ # Send a didOpen for main.adb
22
+ main_adb = lsp .didOpenFile ("main.adb" )
32
23
33
24
# 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 )])
36
27
37
28
# 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 )
39
31
40
32
# Expect these locations
41
- response .assertLocationsList (
33
+ lsp .assertLocationsList (
34
+ res2 ,
42
35
[
43
36
("main.adb" , 10 ),
44
37
("main.adb" , 14 ),
45
38
("p.adb" , 2 ),
46
39
("main.adb" , 2 ),
47
40
("p.ads" , 1 ),
48
41
("p.adb" , 8 ),
49
- ]
42
+ ],
50
43
)
51
- lsp .shutdown ()
52
- return []
0 commit comments