def test_tcp(patch, magic, keyboard_abort): """ Tests whether starting a tcp server works. """ server = magic() if keyboard_abort: server.serve_forever.side_effect = KeyboardInterrupt() did_exit = False class FakeServer: def __init__(self, arg_port, cls): assert arg_port == ('.addr.', '.port.') self.cls = cls def __enter__(self): LanguageServer.start.assert_not_called() tcp_server = self.cls() tcp_server.rfile = 'rfile' tcp_server.wfile = 'wfile' tcp_server.handle() return server def __exit__(self, a, b, c): nonlocal did_exit did_exit = True patch.init(Workspace) patch.object(ConstServiceHub, 'from_json', return_value='ConstServiceHub') patch.init(LanguageServer) patch.object(LanguageServer, 'start') patch('socketserver.TCPServer', FakeServer) patch.init(StreamRequestHandler) app = App(hub_path='.hub.') app.start_tcp_server(addr='.addr.', port='.port.') assert FakeServer.allow_reuse_address server.serve_forever.assert_called() server.server_close.assert_called() LanguageServer.__init__.assert_called_with('rfile', 'wfile', hub='ConstServiceHub') LanguageServer.start.assert_called() assert did_exit
def test_tcp(patch, magic, keyboard_abort): """ Tests whether starting a tcp server works. """ server = magic() if keyboard_abort: server.serve_forever.side_effect = KeyboardInterrupt() did_exit = False class FakeServer: def __init__(self, arg_port, cls): assert arg_port == (".addr.", ".port.") self.cls = cls def __enter__(self): LanguageServer.start.assert_not_called() tcp_server = self.cls() tcp_server.rfile = "rfile" tcp_server.wfile = "wfile" tcp_server.handle() return server def __exit__(self, a, b, c): nonlocal did_exit did_exit = True patch.init(Workspace) patch.object(ServiceWrapper, "from_json_file", return_value="ConstServiceHub") patch.init(LanguageServer) patch.object(LanguageServer, "start") patch("socketserver.TCPServer", FakeServer) patch.init(StreamRequestHandler) app = App(hub_path=".hub.") app.start_tcp_server(addr=".addr.", port=".port.") assert FakeServer.allow_reuse_address server.serve_forever.assert_called() server.server_close.assert_called() LanguageServer.__init__.assert_called_with(hub="ConstServiceHub") LanguageServer.start.assert_called_with("rfile", "wfile") assert did_exit