def GoToTest( command, response ): with patch( 'icm.vimsupport.JumpToLocation' ) as jump_to_location: request = CommandRequest( [ command ] ) request._response = response request.RunPostCommandActionsIfNeeded() jump_to_location.assert_called_with( response[ 'filepath' ], response[ 'line_num' ], response[ 'column_num' ] )
def GoToListTest( command, response ): # Note: the detail of these called are tested by # GoToResponse_QuickFix_test, so here we just check that the right call is # made with patch( 'icm.vimsupport.SetQuickFixList' ) as set_qf_list: with patch( 'icm.vimsupport.OpenQuickFixList' ) as open_qf_list: request = CommandRequest( [ command ] ) request._response = response request.RunPostCommandActionsIfNeeded() ok_( set_qf_list.called ) ok_( open_qf_list.called )
def FixItTest( command, response, chunks, selection ): with patch( 'icm.vimsupport.ReplaceChunks' ) as replace_chunks: with patch( 'icm.vimsupport.PostVimMessage' ) as post_vim_message: with patch( 'icm.vimsupport.SelectFromList', return_value = selection ): request = CommandRequest( [ command ] ) request._response = response request.RunPostCommandActionsIfNeeded() replace_chunks.assert_called_with( chunks ) post_vim_message.assert_not_called()
def EmptyFixItTest( command ): with patch( 'icm.vimsupport.ReplaceChunks' ) as replace_chunks: with patch( 'icm.vimsupport.PostVimMessage' ) as post_vim_message: request = CommandRequest( [ command ] ) request._response = { 'fixits': [] } request.RunPostCommandActionsIfNeeded() post_vim_message.assert_called_with( 'No fixits found for current line', warning = False ) replace_chunks.assert_not_called()
def setUp( self ): self._request = CommandRequest( [ 'GoToTest' ] )
class GoToResponse_QuickFix_test( object ): """This class tests the generation of QuickFix lists for GoTo responses which return multiple locations, such as the Python completer and JavaScript completer. It mostly proves that we use 1-based indexing for the column number.""" def setUp( self ): self._request = CommandRequest( [ 'GoToTest' ] ) def tearDown( self ): self._request = None def GoTo_EmptyList_test( self ): self._CheckGoToList( [], [] ) def GoTo_SingleItem_List_test( self ): self._CheckGoToList( [ { 'filepath': 'dummy_file', 'line_num': 10, 'column_num': 1, 'description': 'this is some text', } ], [ { 'filename': 'dummy_file', 'text': 'this is some text', 'lnum': 10, 'col': 1 } ] ) def GoTo_MultiItem_List_test( self ): self._CheckGoToList( [ { 'filepath': 'dummy_file', 'line_num': 10, 'column_num': 1, 'description': 'this is some other text', }, { 'filepath': 'dummy_file2', 'line_num': 1, 'column_num': 21, 'description': 'this is some text', } ], [ { 'filename': 'dummy_file', 'text': 'this is some other text', 'lnum': 10, 'col': 1 }, { 'filename': 'dummy_file2', 'text': 'this is some text', 'lnum': 1, 'col': 21 } ] ) @patch( 'icm.vimsupport.VariableExists', return_value = True ) @patch( 'icm.vimsupport.SetFittingHeightForCurrentWindow' ) @patch( 'vim.command', new_callable = ExtendedMock ) @patch( 'vim.eval', new_callable = ExtendedMock ) def _CheckGoToList( self, completer_response, expected_qf_list, vim_eval, vim_command, set_fitting_height, variable_exists ): self._request._response = completer_response self._request.RunPostCommandActionsIfNeeded() vim_eval.assert_has_exact_calls( [ call( 'setqflist( {0} )'.format( json.dumps( expected_qf_list ) ) ) ] ) vim_command.assert_has_exact_calls( [ call( 'botright copen' ), call( 'au WinLeave <buffer> q' ), call( 'doautocmd User IcmQuickFixOpened' ) ] ) set_fitting_height.assert_called_once_with()
def DetailedInfoTest( command, info ): with patch( 'icm.vimsupport.WriteToPreviewWindow' ) as write_to_preview: request = CommandRequest( [ command ] ) request._response = { 'detailed_info': info } request.RunPostCommandActionsIfNeeded() write_to_preview.assert_called_with( info )
def MessageTest( command, message ): with patch( 'icm.vimsupport.PostVimMessage' ) as post_vim_message: request = CommandRequest( [ command ] ) request._response = { 'message': message } request.RunPostCommandActionsIfNeeded() post_vim_message.assert_called_with( message, warning = False )
def _BasicResponseTest( command, response ): with patch( 'vim.command' ) as vim_command: request = CommandRequest( [ command ] ) request._response = response request.RunPostCommandActionsIfNeeded() vim_command.assert_called_with( "echo '{0}'".format( response ) )