def test_ResolveCompletionRequest_ServerError(self, ycm, post_vim_message, logger): def ServerResponse(*args): return { 'completions': [{ 'insertion_text': 'insertion_text', 'menu_text': 'menu_text', 'extra_menu_info': 'extra_menu_info', 'detailed_info': 'detailed_info', 'kind': 'kind', 'extra_data': { 'doc_string': 'doc_string', 'resolve': 10 } }], 'completion_start_column': 3, 'errors': [] } current_buffer = VimBuffer('buffer') with MockVimBuffers([current_buffer], [current_buffer]): with MockCompletionRequest(ServerResponse): ycm.SendCompletionRequest() assert_that(ycm.CompletionRequestReady()) response = ycm.GetCompletionResponse() post_vim_message.assert_not_called() assert_that( response, has_entries({ 'completions': contains_exactly( has_entries({ 'word': 'insertion_text', 'abbr': 'menu_text', 'menu': 'extra_menu_info', 'info': 'detailed_info\ndoc_string', 'kind': 'k', 'dup': 1, 'empty': 1 })), 'completion_start_column': 3 })) item = response['completions'][0] assert_that(json.loads(item['user_data']), has_entries({'resolve': 10})) with MockResolveRequest(ServerError('Server error')): ycm.ResolveCompletionItem(item) assert_that(ycm.CompletionRequestReady()) response = ycm.GetCompletionResponse() logger.exception.assert_called_with( 'Error while handling server ' 'response') post_vim_message.assert_has_exact_calls( [call('Server error', truncate=True)])
def EnsureRequestValid( request_json ): required_fields = { 'line_num', 'column_num', 'filepath', 'file_data' } missing = { x for x in required_fields if x not in request_json } if 'filepath' not in missing and 'file_data' not in missing: missing.update( _MissingFieldsForFileData( request_json ) ) if not missing: return True message = '\n'.join( _FieldMissingMessage( field ) for field in missing ) raise ServerError( message )
def YouCompleteMe_GetDefinedSubcommands_ErrorFromServer_test( ycm, post_vim_message, logger): current_buffer = VimBuffer('buffer') with MockVimBuffers([current_buffer], current_buffer): with patch('ycm.client.base_request.JsonFromFuture', side_effect=ServerError('Server error')): result = ycm.GetDefinedSubcommands() logger.exception.assert_called_with('Error while handling server response') post_vim_message.assert_has_exact_calls( [call('Server error', truncate=False)]) assert_that(result, empty())
def CreateCompletionRequest_ErrorFromServer_test(ycm, post_vim_message, logger): current_buffer = VimBuffer('buffer') with MockVimBuffers([current_buffer], current_buffer): ycm.CreateCompletionRequest(), with patch('icm.client.completion_request.JsonFromFuture', side_effect=ServerError('Server error')): results = ycm.GetCompletions() logger.exception.assert_called_with('Error while handling server response') post_vim_message.assert_has_exact_calls( [call('Server error', truncate=True)]) assert_that(results, has_entries({'words': empty(), 'refresh': 'always'}))
def test_ResolveCompletionItem_NoUserData(self, ycm, post_vim_message): def CompletionResponse(*args): return { 'completions': [{ 'insertion_text': 'insertion_text', 'menu_text': 'menu_text', 'extra_menu_info': 'extra_menu_info', 'detailed_info': 'detailed_info', 'kind': 'kind' }], 'completion_start_column': 3, 'errors': [] } current_buffer = VimBuffer('buffer') with MockVimBuffers([current_buffer], [current_buffer]): with MockCompletionRequest(CompletionResponse): ycm.SendCompletionRequest() assert_that(ycm.CompletionRequestReady()) response = ycm.GetCompletionResponse() post_vim_message.assert_not_called() assert_that( response, has_entries({ 'completions': contains_exactly( has_entries({ 'word': 'insertion_text', 'abbr': 'menu_text', 'menu': 'extra_menu_info', 'info': 'detailed_info', 'kind': 'k', 'dup': 1, 'empty': 1 })), 'completion_start_column': 3 })) item = response['completions'][0] item.pop('user_data') with MockResolveRequest(ServerError('must not be called')): assert_that(ycm.ResolveCompletionItem(item), equal_to(False)) post_vim_message.assert_not_called()
def SendCompletionRequest_ErrorFromServer_test(ycm, post_vim_message, logger): current_buffer = VimBuffer('buffer') with MockVimBuffers([current_buffer], [current_buffer]): with MockCompletionRequest(ServerError('Server error')): ycm.SendCompletionRequest() ok_(ycm.CompletionRequestReady()) response = ycm.GetCompletionResponse() logger.exception.assert_called_with('Error while handling server ' 'response') post_vim_message.assert_has_exact_calls( [call('Server error', truncate=True)]) assert_that( response, has_entries({ 'completions': empty(), 'completion_start_column': -1 }))
def ErrorResponse( *args ): raise ServerError( ERROR_TEXT )
def _RaiseExceptionForData(data): if data['exception']['TYPE'] == UnknownExtraConf.__name__: raise UnknownExtraConf(data['exception']['extra_conf_file']) raise ServerError('{0}: {1}'.format(data['exception']['TYPE'], data['message']))
def MakeServerException(data): if data['exception']['TYPE'] == UnknownExtraConf.__name__: return UnknownExtraConf(data['exception']['extra_conf_file']) return ServerError('{0}: {1}'.format(data['exception']['TYPE'], data['message']))
def MakeServerException(data): if data['exception']['TYPE'] == UnknownExtraConf.__name__: return UnknownExtraConf(data['exception']['extra_conf_file']) return ServerError(f'{ data[ "exception" ][ "TYPE" ] }: ' f'{ data[ "message" ] }')
def test_ResolveCompletionRequest_Resolves(self, ycm, post_vim_message, logger): def CompletionResponse(*args): return { 'completions': [{ 'insertion_text': 'insertion_text', 'menu_text': 'menu_text', 'extra_menu_info': 'extra_menu_info', 'detailed_info': 'detailed_info', 'kind': 'kind', 'extra_data': { 'doc_string': 'doc_string', 'resolve': 10 } }], 'completion_start_column': 3, 'errors': [] } def ResolveResponse(*args): return { 'completion': { 'insertion_text': 'insertion_text', 'menu_text': 'menu_text', 'extra_menu_info': 'extra_menu_info', 'detailed_info': 'detailed_info', 'kind': 'kind', 'extra_data': { 'doc_string': 'doc_string with more info' } }, 'errors': [] } current_buffer = VimBuffer('buffer') with MockVimBuffers([current_buffer], [current_buffer]): with MockCompletionRequest(CompletionResponse): ycm.SendCompletionRequest() assert_that(ycm.CompletionRequestReady()) response = ycm.GetCompletionResponse() post_vim_message.assert_not_called() assert_that( response, has_entries({ 'completions': contains_exactly( has_entries({ 'word': 'insertion_text', 'abbr': 'menu_text', 'menu': 'extra_menu_info', 'info': 'detailed_info\ndoc_string', 'kind': 'k', 'dup': 1, 'empty': 1 })), 'completion_start_column': 3 })) item = response['completions'][0] assert_that(json.loads(item['user_data']), has_entries({'resolve': 10})) with MockResolveRequest(ResolveResponse): assert_that(ycm.ResolveCompletionItem(item), equal_to(True)) assert_that(ycm.CompletionRequestReady()) response = ycm.GetCompletionResponse() post_vim_message.assert_not_called() assert_that( response, has_entries({ 'completion': has_entries({ 'word': 'insertion_text', 'abbr': 'menu_text', 'menu': 'extra_menu_info', 'info': 'detailed_info\ndoc_string with more info', 'kind': 'k', 'dup': 1, 'empty': 1 }) })) item = response['completion'] with MockResolveRequest(ServerError('must not be called')): assert_that(ycm.ResolveCompletionItem(item), equal_to(False)) post_vim_message.assert_not_called()