def main(): parser = argparse.ArgumentParser(description='JEP backend providing CMake editing support.') parser.add_argument('--version', help='CMake version to be supported, mainly used for completion of built-in commands.', choices=['2.8.12', '3.4'], default='3.4') parser.add_argument('--builtin-cmake', help='If specified, built-in CMake commands are part of code completion.', action='store_true') parser.add_argument('--builtin-ctest', help='If specified, built-in ctest commands are part of code completion.', action='store_true') parser.add_argument('--builtin-deprecated', help='If specified, built-in CMake commands that have been deprecated are part of code completion.', action='store_true') args = parser.parse_args() backend = Backend([Listener(cmake_version=args.version, builtin_commands=args.builtin_cmake, ctest_commands=args.builtin_ctest, deprecated_commands=args.builtin_deprecated)]) _logger.info('CMake backend starting up.') backend.start()
def test_bind_and_listen_and_accept_and_disconnect(mock_select_mod, mock_socket_mod, capsys): backend = Backend() server_socket = mock_socket_mod.socket() # mock a connecting frontend: mock_select_mod.select = mock.MagicMock(return_value=([server_socket], [], [])) client_socket = mock.MagicMock() server_socket.accept = mock.MagicMock(side_effect=set_backend_state(backend, State.ShutdownPending, [client_socket])) backend.start() assert backend.state is State.Stopped assert server_socket.close.call_count == 1 assert client_socket.close.call_count == 1 out, *_ = capsys.readouterr() assert 'JEP service, listening on port 9001' in out
def test_find_server_port(mock_socket_mod): # deny binding to any port: mock_socket_mod.socket().bind = mock.MagicMock(side_effect=OSError) backend = Backend() with pytest.raises(NoPortFoundError): backend.start() assert PORT_RANGE[0] < PORT_RANGE[1], 'At lest one port should be testable.' # check if all ports have been tested: for port in range(PORT_RANGE[0], PORT_RANGE[1]): assert mock.call(('localhost', port)) in mock_socket_mod.socket().bind.call_args_list assert backend.state is State.Stopped
def test_find_server_port(mock_socket_mod): # deny binding to any port: mock_socket_mod.socket().bind = mock.MagicMock(side_effect=OSError) backend = Backend() with pytest.raises(NoPortFoundError): backend.start() assert PORT_RANGE[0] < PORT_RANGE[1], 'At lest one port should be testable.' # check if all ports have been tested: for port in range(PORT_RANGE[0], PORT_RANGE[1]): assert mock.call( ('localhost', port)) in mock_socket_mod.socket().bind.call_args_list assert backend.state is State.Stopped
def test_bind_and_listen_and_accept_and_disconnect(mock_select_mod, mock_socket_mod, capsys): backend = Backend() server_socket = mock_socket_mod.socket() # mock a connecting frontend: mock_select_mod.select = mock.MagicMock(return_value=([server_socket], [], [])) client_socket = mock.MagicMock() server_socket.accept = mock.MagicMock(side_effect=set_backend_state( backend, State.ShutdownPending, [client_socket])) backend.start() assert backend.state is State.Stopped assert server_socket.close.call_count == 1 assert client_socket.close.call_count == 1 out, *_ = capsys.readouterr() assert 'JEP service, listening on port 9001' in out
'jep': { 'handlers': ['console'], 'propagate': False, 'level': 'DEBUG' } }, 'root': { 'level': 'WARNING', 'handlers': ['console'] } }) _logger = logging.getLogger('jep.backend.sample') class Listener(FrontendListener): def on_shutdown(self, context): _logger.info('Received shutdown in listener.') def on_completion_request(self, completion_request: CompletionRequest, context): context.send_message(CompletionResponse(completion_request.pos, 0, False, [CompletionOption('cpltextthatisveryverylongmuchlongerthan', 'Something', 'Something to complete')], completion_request.token)) b = Backend([Listener()]) b.register_static_syntax('mcmake', os.path.join(moduledir, '../input/syntax/mcmake.tmLanguage'), SyntaxFormatType.textmate, '.mcmake') b.start()