44from .setup import close_test_view
55from .setup import expand
66from .setup import make_stdio_test_config
7+ from .setup import make_tcp_client_test_config
8+ from .setup import make_tcp_server_test_config
79from .setup import remove_config
810from .setup import TIMEOUT_TIME
911from .setup import YieldPromise
@@ -50,16 +52,17 @@ def setUp(self) -> Generator:
5052 self .assertTrue (self .window )
5153 self .session1 = None
5254 self .session2 = None
53- self .config1 = make_stdio_test_config ()
54- self .config1 .initialization_options .assign (initialization_options )
55- self .config2 = make_stdio_test_config ()
56- self .config2 .initialization_options .assign (initialization_options )
57- self .config2 .name = "TEST-2"
55+ self .session3 = None
56+ self .config1 = make_stdio_test_config ("TEST-1" , initialization_options )
57+ self .config2 = make_tcp_client_test_config ("TEST-2" , initialization_options )
58+ self .config3 = make_tcp_server_test_config ("TEST-3" , initialization_options )
5859 self .wm = windows .lookup (self .window )
5960 add_config (self .config1 )
6061 add_config (self .config2 )
62+ add_config (self .config3 )
6163 self .wm .get_config_manager ().all [self .config1 .name ] = self .config1
6264 self .wm .get_config_manager ().all [self .config2 .name ] = self .config2
65+ self .wm .get_config_manager ().all [self .config3 .name ] = self .config3
6366
6467 def test_sends_did_open_to_multiple_sessions (self ) -> Generator :
6568 filename = expand (join ("$packages" , "LSP" , "tests" , "testfile.txt" ), self .window )
@@ -76,14 +79,21 @@ def test_sends_did_open_to_multiple_sessions(self) -> Generator:
7679 yield {
7780 "condition" : lambda : self .wm .get_session (self .config2 .name , self .view .file_name ()) is not None ,
7881 "timeout" : TIMEOUT_TIME }
82+ yield {
83+ "condition" : lambda : self .wm .get_session (self .config3 .name , self .view .file_name ()) is not None ,
84+ "timeout" : TIMEOUT_TIME }
7985 self .session1 = self .wm .get_session (self .config1 .name , self .view .file_name ())
8086 self .session2 = self .wm .get_session (self .config2 .name , self .view .file_name ())
87+ self .session3 = self .wm .get_session (self .config3 .name , self .view .file_name ())
8188 self .assertIsNotNone (self .session1 )
8289 self .assertIsNotNone (self .session2 )
90+ self .assertIsNotNone (self .session3 )
8391 self .assertEqual (self .session1 .config .name , self .config1 .name )
8492 self .assertEqual (self .session2 .config .name , self .config2 .name )
93+ self .assertEqual (self .session3 .config .name , self .config3 .name )
8594 yield {"condition" : lambda : self .session1 .state == ClientStates .READY , "timeout" : TIMEOUT_TIME }
8695 yield {"condition" : lambda : self .session2 .state == ClientStates .READY , "timeout" : TIMEOUT_TIME }
96+ yield {"condition" : lambda : self .session3 .state == ClientStates .READY , "timeout" : TIMEOUT_TIME }
8797 yield from self .await_message ("initialize" )
8898 yield from self .await_message ("initialized" )
8999 yield from self .await_message ("textDocument/didOpen" )
@@ -103,6 +113,13 @@ def doCleanups(self) -> Generator:
103113 if self .session2 :
104114 sublime .set_timeout_async (self .session2 .end_async )
105115 yield lambda : self .session2 .state == ClientStates .STOPPING
116+ if self .session3 :
117+ sublime .set_timeout_async (self .session3 .end_async )
118+ yield lambda : self .session3 .state == ClientStates .STOPPING
119+ try :
120+ remove_config (self .config3 )
121+ except ValueError :
122+ pass
106123 try :
107124 remove_config (self .config2 )
108125 except ValueError :
@@ -111,24 +128,31 @@ def doCleanups(self) -> Generator:
111128 remove_config (self .config1 )
112129 except ValueError :
113130 pass
131+ self .wm .get_config_manager ().all .pop (self .config3 .name , None )
114132 self .wm .get_config_manager ().all .pop (self .config2 .name , None )
115133 self .wm .get_config_manager ().all .pop (self .config1 .name , None )
116134 yield from super ().doCleanups ()
117135
118136 def await_message (self , method : str ) -> Generator :
119137 promise1 = YieldPromise ()
120138 promise2 = YieldPromise ()
139+ promise3 = YieldPromise ()
121140
122141 def handler1 (params : Any ) -> None :
123142 promise1 .fulfill (params )
124143
125144 def handler2 (params : Any ) -> None :
126145 promise2 .fulfill (params )
127146
147+ def handler3 (params : Any ) -> None :
148+ promise3 .fulfill (params )
149+
128150 def error_handler (params : Any ) -> None :
129151 debug ("Got error:" , params , "awaiting timeout :(" )
130152
131153 self .session1 .send_request (Request ("$test/getReceived" , {"method" : method }), handler1 , error_handler )
132154 self .session2 .send_request (Request ("$test/getReceived" , {"method" : method }), handler2 , error_handler )
155+ self .session3 .send_request (Request ("$test/getReceived" , {"method" : method }), handler3 , error_handler )
133156 yield {"condition" : promise1 , "timeout" : TIMEOUT_TIME }
134157 yield {"condition" : promise2 , "timeout" : TIMEOUT_TIME }
158+ yield {"condition" : promise3 , "timeout" : TIMEOUT_TIME }
0 commit comments