def test_rename_return_workspace_edit(self): response = self.client.lsp.send_request( RENAME, RenameParams( text_document=TextDocumentIdentifier( uri='file://return.workspace_edit'), position=Position(line=0, character=0), new_name='new name', ), ).result(timeout=CALL_TIMEOUT) assert response assert response['changes']['uri1'][0]['newText'] == 'text1' assert response['changes']['uri1'][0]['range']['start']['line'] == 0 assert response['changes']['uri1'][0]['range']['start'][ 'character'] == 0 assert response['changes']['uri1'][0]['range']['end']['line'] == 1 assert response['changes']['uri1'][0]['range']['end']['character'] == 1 assert response['changes']['uri1'][1]['newText'] == 'text2' assert response['changes']['uri1'][1]['range']['start']['line'] == 1 assert response['changes']['uri1'][1]['range']['start'][ 'character'] == 1 assert response['changes']['uri1'][1]['range']['end']['line'] == 2 assert response['changes']['uri1'][1]['range']['end']['character'] == 2 assert response['documentChanges'][0]['textDocument']['uri'] == 'uri' assert response['documentChanges'][0]['textDocument']['version'] == 3 assert response['documentChanges'][0]['edits'][0]['newText'] == 'text3' assert response['documentChanges'][0]['edits'][0]['range']['start'][ 'line'] == 2 assert response['documentChanges'][0]['edits'][0]['range']['start'][ 'character'] == 2 assert response['documentChanges'][0]['edits'][0]['range']['end'][ 'line'] == 3 assert response['documentChanges'][0]['edits'][0]['range']['end'][ 'character'] == 3 assert response['documentChanges'][1][ 'kind'] == ResourceOperationKind.Create assert response['documentChanges'][1]['uri'] == 'create file' assert response['documentChanges'][1]['options'][ 'ignoreIfExists'] == True assert response['documentChanges'][1]['options']['overwrite'] == True assert response['documentChanges'][2][ 'kind'] == ResourceOperationKind.Rename assert response['documentChanges'][2]['newUri'] == 'rename new uri' assert response['documentChanges'][2]['oldUri'] == 'rename old uri' assert response['documentChanges'][2]['options'][ 'ignoreIfExists'] == True assert response['documentChanges'][2]['options']['overwrite'] == True assert response['documentChanges'][3][ 'kind'] == ResourceOperationKind.Delete assert response['documentChanges'][3]['uri'] == 'delete file' assert response['documentChanges'][3]['options'][ 'ignoreIfExists'] == True assert response['documentChanges'][3]['options']['recursive'] == True
def test_range_formatting_return_list(self): response = self.client.lsp.send_request( RANGE_FORMATTING, DocumentRangeFormattingParams( text_document=TextDocumentIdentifier(uri='file://return.list'), range=Range( start=Position(line=0, character=0), end=Position(line=1, character=1), ), options=FormattingOptions( tab_size=2, insert_spaces=True, trim_trailing_whitespace=True, insert_final_newline=True, trim_final_newlines=True, ), ), ).result(timeout=CALL_TIMEOUT) assert response assert response[0]['newText'] == 'text' assert response[0]['range']['start']['line'] == 0 assert response[0]['range']['start']['character'] == 0 assert response[0]['range']['end']['line'] == 1 assert response[0]['range']['end']['character'] == 1
def test_completions(self): response = self.client.lsp.send_request( COMPLETION, CompletionParams( text_document=TextDocumentIdentifier(uri='file://test.test'), position=Position(line=0, character=0))).result(timeout=CALL_TIMEOUT) assert response['isIncomplete'] == False assert response['items'][0]['label'] == 'test1' assert response['items'][0]['kind'] == CompletionItemKind.Method assert response['items'][0]['preselect'] == True assert 'deprecated' not in response['items'][0] assert 'tags' not in response['items'][0] assert 'detail' not in response['items'][0] assert 'documentation' not in response['items'][0] assert 'sort_text' not in response['items'][0] assert 'filter_text' not in response['items'][0] assert 'insert_text' not in response['items'][0] assert 'insert_text_format' not in response['items'][0] assert 'insert_text_mode' not in response['items'][0] assert 'text_edit' not in response['items'][0] assert 'additional_text_edits' not in response['items'][0] assert 'commit_characters' not in response['items'][0] assert 'command' not in response['items'][0] assert 'data' not in response['items'][0]
def test_signature_help_return_none(self): response = self.client.lsp.send_request( SIGNATURE_HELP, SignatureHelpParams( text_document=TextDocumentIdentifier(uri='file://return.none'), position=Position(line=0, character=0), context=SignatureHelpContext( trigger_kind=SignatureHelpTriggerKind.TriggerCharacter, is_retrigger=True, trigger_character='a', active_signature_help=SignatureHelp( signatures=[ SignatureInformation( label='label', documentation='documentation', parameters=[ ParameterInformation( label=(0, 0), documentation='documentation', ), ]), ], active_signature=0, active_parameter=0, ), ), ), ).result(timeout=CALL_TIMEOUT) assert response is None
def test_semantic_tokens_full_return_none(self): response = self.client.lsp.send_request( TEXT_DOCUMENT_SEMANTIC_TOKENS_FULL, SemanticTokensParams(text_document=TextDocumentIdentifier( uri='file://return.none'))).result(timeout=CALL_TIMEOUT) assert response is None
def test_code_action_return_none(self): response = self.client.lsp.send_request( CODE_ACTION, CodeActionParams( text_document=TextDocumentIdentifier(uri='file://return.none'), range=Range( start=Position(line=0, character=0), end=Position(line=1, character=1), ), context=CodeActionContext( diagnostics=[ Diagnostic( range=Range( start=Position(line=0, character=0), end=Position(line=1, character=1), ), message='diagnostic', ) ], only=[CodeActionKind.Refactor], ) ) ).result(timeout=CALL_TIMEOUT) assert response is None
def test_declaration_return_location_link_list(self): response = self.client.lsp.send_request( DECLARATION, DeclarationParams( text_document=TextDocumentIdentifier( uri='file://return.location_link_list'), position=Position(line=0, character=0), ), ).result(timeout=CALL_TIMEOUT) assert response[0]['targetUri'] == 'uri' assert response[0]['targetRange']['start']['line'] == 0 assert response[0]['targetRange']['start']['character'] == 0 assert response[0]['targetRange']['end']['line'] == 1 assert response[0]['targetRange']['end']['character'] == 1 assert response[0]['targetSelectionRange']['start']['line'] == 0 assert response[0]['targetSelectionRange']['start']['character'] == 0 assert response[0]['targetSelectionRange']['end']['line'] == 2 assert response[0]['targetSelectionRange']['end']['character'] == 2 assert response[0]['originSelectionRange']['start']['line'] == 0 assert response[0]['originSelectionRange']['start']['character'] == 0 assert response[0]['originSelectionRange']['end']['line'] == 3 assert response[0]['originSelectionRange']['end']['character'] == 3
def test_code_lens_return_none(self): response = self.client.lsp.send_request( CODE_LENS, CodeLensParams(text_document=TextDocumentIdentifier(uri='file://return.none')), ).result(timeout=CALL_TIMEOUT) assert response is None
def test_document_symbol_return_document_symbol_list(self): response = self.client.lsp.send_request( DOCUMENT_SYMBOL, DocumentSymbolParams( text_document=TextDocumentIdentifier(uri='file://return.document_symbol_list'), ), ).result(timeout=CALL_TIMEOUT) assert response assert response[0]['name'] == 'symbol' assert response[0]['kind'] == SymbolKind.Object assert response[0]['range']['start']['line'] == 0 assert response[0]['range']['start']['character'] == 0 assert response[0]['range']['end']['line'] == 10 assert response[0]['range']['end']['character'] == 10 assert response[0]['selectionRange']['start']['line'] == 0 assert response[0]['selectionRange']['start']['character'] == 0 assert response[0]['selectionRange']['end']['line'] == 10 assert response[0]['selectionRange']['end']['character'] == 10 assert response[0]['detail'] == 'detail' assert response[0]['deprecated'] == True assert response[0]['children'][0]['name'] == 'inner_symbol' assert response[0]['children'][0]['kind'] == SymbolKind.Number assert response[0]['children'][0]['range']['start']['line'] == 0 assert response[0]['children'][0]['range']['start']['character'] == 0 assert response[0]['children'][0]['range']['end']['line'] == 1 assert response[0]['children'][0]['range']['end']['character'] == 1 assert response[0]['children'][0]['selectionRange']['start']['line'] == 0 assert response[0]['children'][0]['selectionRange']['start']['character'] == 0 assert response[0]['children'][0]['selectionRange']['end']['line'] == 1 assert response[0]['children'][0]['selectionRange']['end']['character'] == 1 assert 'children' not in response[0]['children'][0]
def test_code_action_return_list(self): response = self.client.lsp.send_request( CODE_ACTION, CodeActionParams( text_document=TextDocumentIdentifier(uri='file://return.list'), range=Range( start=Position(line=0, character=0), end=Position(line=1, character=1), ), context=CodeActionContext( diagnostics=[ Diagnostic( range=Range( start=Position(line=0, character=0), end=Position(line=1, character=1), ), message='diagnostic' ) ], only=[CodeActionKind.Refactor] ) ) ).result(timeout=CALL_TIMEOUT) assert response[0]['title'] == 'action1' assert response[1]['title'] == 'action2' assert response[1]['kind'] == CodeActionKind.Refactor assert response[2]['title'] == 'cmd1' assert response[2]['command'] == 'cmd1' assert response[2]['arguments'] == [1, 'two']
def test_folding_range_return_none(self): response = self.client.lsp.send_request( FOLDING_RANGE, FoldingRangeParams(text_document=TextDocumentIdentifier( uri='file://return.none'), ), ).result(timeout=CALL_TIMEOUT) assert response is None
def test_document_link_return_none(self): response = self.client.lsp.send_request( DOCUMENT_LINK, DocumentLinkParams(text_document=TextDocumentIdentifier( uri='file://return.none'), ), ).result(timeout=CALL_TIMEOUT) assert response is None
def test_references_return_none(self): response = self.client.lsp.send_request( TEXT_DOCUMENT_MONIKER, MonikerParams( text_document=TextDocumentIdentifier(uri='file://return.none'), position=Position(line=0, character=0), )).result(timeout=CALL_TIMEOUT) assert response is None
def test_call_hierarchy_prepare_return_none(self): response = self.client.lsp.send_request( TEXT_DOCUMENT_CALL_HIERARCHY_PREPARE, CallHierarchyPrepareParams( text_document=TextDocumentIdentifier(uri='file://return.none'), position=Position(line=0, character=0), )).result(timeout=CALL_TIMEOUT) assert response is None
def test_did_close(): _reset_mocks() params = DidCloseTextDocumentParams(text_document=TextDocumentIdentifier( uri=fake_document_uri)) did_close(server, params) # Check if show message is called server.show_message.assert_called_once()
def test_document_highlight_return_none(self): response = self.client.lsp.send_request( DOCUMENT_HIGHLIGHT, DocumentHighlightParams( text_document=TextDocumentIdentifier(uri='file://return.none'), position=Position(line=0, character=0), ), ).result(timeout=CALL_TIMEOUT) assert response is None
def test_references_return_none(self): response = self.client.lsp.send_request( REFERENCES, ReferenceParams( text_document=TextDocumentIdentifier(uri='file://return.none'), position=Position(line=0, character=0), context=ReferenceContext(include_declaration=True, ), )).result(timeout=CALL_TIMEOUT) assert response is None
def test_prepare_rename_return_none(self): response = self.client.lsp.send_request( PREPARE_RENAME, PrepareRenameParams( text_document=TextDocumentIdentifier(uri='file://return.none'), position=Position(line=0, character=0), ), ).result(timeout=CALL_TIMEOUT) assert response is None
def test_declaration_return_none(self): response = self.client.lsp.send_request( DECLARATION, DeclarationParams( text_document=TextDocumentIdentifier(uri='file://return.none'), position=Position(line=0, character=0), ), ).result(timeout=CALL_TIMEOUT) assert response is None
def test_linked_editing_ranges_return_none(self): response = self.client.lsp.send_request( TEXT_DOCUMENT_LINKED_EDITING_RANGE, LinkedEditingRangeParams( text_document=TextDocumentIdentifier(uri='file://return.none'), position=Position(line=0, character=0), ), ).result(timeout=CALL_TIMEOUT) assert response is None
def test_semantic_tokens_range_return_none(self): response = self.client.lsp.send_request( TEXT_DOCUMENT_SEMANTIC_TOKENS_RANGE, SemanticTokensRangeParams( text_document=TextDocumentIdentifier(uri='file://return.none'), range=Range( start=Position(line=0, character=0), end=Position(line=10, character=80)))).result(timeout=CALL_TIMEOUT) assert response is None
def test_selection_range_return_none(self): response = self.client.lsp.send_request( SELECTION_RANGE, SelectionRangeParams( query='query', text_document=TextDocumentIdentifier(uri='file://return.none'), positions=[Position(line=0, character=0)], ), ).result(timeout=CALL_TIMEOUT) assert response is None
def test_semantic_tokens_full_delta_return_tokens(self): response = self.client.lsp.send_request( TEXT_DOCUMENT_SEMANTIC_TOKENS_FULL_DELTA, SemanticTokensDeltaParams( text_document=TextDocumentIdentifier( uri='file://return.tokens'), previous_result_id='id')).result(timeout=CALL_TIMEOUT) assert response assert response['data'] == [0, 0, 3, 0, 0]
def test_code_lens_return_list(self): response = self.client.lsp.send_request( CODE_LENS, CodeLensParams(text_document=TextDocumentIdentifier(uri='file://return.list')), ).result(timeout=CALL_TIMEOUT) assert response[0]['data'] == 'some data' assert response[0]['range']['start']['line'] == 0 assert response[0]['range']['start']['character'] == 0 assert response[0]['range']['end']['line'] == 1 assert response[0]['range']['end']['character'] == 1 assert response[0]['command']['title'] == 'cmd1' assert response[0]['command']['command'] == 'cmd1'
def test_folding_range_return_list(self): response = self.client.lsp.send_request( FOLDING_RANGE, FoldingRangeParams(text_document=TextDocumentIdentifier( uri='file://return.list'), ), ).result(timeout=CALL_TIMEOUT) assert response assert response[0]['startLine'] == 0 assert response[0]['endLine'] == 0 assert response[0]['startCharacter'] == 1 assert response[0]['endCharacter'] == 1 assert response[0]['kind'] == FoldingRangeKind.Comment
def test_format_should_return_whole_file_text_edit(self) -> None: service = GalaxyToolFormatService() params = DocumentFormattingParams( text_document=TextDocumentIdentifier(uri="test"), options=FormattingOptions(tab_size=4, insert_spaces=True), ) actual = service.format(FAKE_UNFORMATTED_DOCUMENT, params) assert len(actual) == 1 assert actual[0].range.start.line == 0 assert actual[0].range.start.character == 0 assert actual[0].range.end.line == 3 assert actual[0].range.end.character == 0
def test_moniker_return_list(self): response = self.client.lsp.send_request( TEXT_DOCUMENT_MONIKER, MonikerParams( text_document=TextDocumentIdentifier(uri='file://return.list'), position=Position(line=0, character=0), )).result(timeout=CALL_TIMEOUT) assert response assert response[0]['scheme'] == 'test_scheme' assert response[0]['identifier'] == 'test_identifier' assert response[0]['unique'] == 'global' assert response[0]['kind'] == 'local'
def test_hover( client_server: Tuple[LanguageServer, CMakeLanguageServer], datadir: Path ) -> None: client, server = client_server _init(client, datadir) path = datadir / "CMakeLists.txt" _open(client, path, "project()") response = client.lsp.send_request( HOVER, TextDocumentPositionParams( text_document=TextDocumentIdentifier(uri=path.as_uri()), position=Position(line=0, character=0), ), ).result(timeout=CALL_TIMEOUT) assert "<PROJECT-NAME>" in response["contents"]["value"]
def test_formatting( client_server: Tuple[LanguageServer, CMakeLanguageServer], datadir: Path ) -> None: client, server = client_server _init(client, datadir) path = datadir / "CMakeLists.txt" _open(client, path, "a ( b c ) ") response = client.lsp.send_request( FORMATTING, DocumentFormattingParams( text_document=TextDocumentIdentifier(uri=path.as_uri()), options=FormattingOptions(tab_size=2, insert_spaces=True), ), ).result(timeout=CALL_TIMEOUT) assert response[0]["newText"] == "a(b c)\n"
def test_document_formatting_return_none(self): response = self.client.lsp.send_request( FORMATTING, DocumentFormattingParams( text_document=TextDocumentIdentifier(uri='file://return.none'), options=FormattingOptions( tab_size=2, insert_spaces=True, trim_trailing_whitespace=True, insert_final_newline=True, trim_final_newlines=True, ), )).result(timeout=CALL_TIMEOUT) assert response is None