コード例 #1
0
 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' ] )
コード例 #2
0
 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 )
コード例 #3
0
    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()
コード例 #4
0
    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()
コード例 #5
0
 def setUp( self ):
   self._request = CommandRequest( [ 'GoToTest' ] )
コード例 #6
0
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()
コード例 #7
0
 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 )
コード例 #8
0
 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 )
コード例 #9
0
 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 ) )