diff --git a/python/ycm/tests/command_test.py b/python/ycm/tests/command_test.py index e894647b..d18506c0 100644 --- a/python/ycm/tests/command_test.py +++ b/python/ycm/tests/command_test.py @@ -32,13 +32,19 @@ from mock import patch from ycm.tests import YouCompleteMeInstance -@YouCompleteMeInstance() +@YouCompleteMeInstance( { 'extra_conf_vim_data': [ 'tempname()' ] } ) def SendCommandRequest_test( ycm ): current_buffer = VimBuffer( 'buffer' ) with MockVimBuffers( [ current_buffer ], current_buffer ): + with patch( 'ycm.youcompleteme.SendCommandRequest' ) as send_request: + ycm.SendCommandRequest( [ 'GoTo' ], 'python' ) + send_request.assert_called_once_with( + [ 'GoTo' ], 'python', { 'extra_conf_data': { + 'tempname()': '_TEMP_FILE_' } } + ) with patch( 'ycm.client.base_request.JsonFromFuture', return_value = 'Some response' ): assert_that( - ycm.SendCommandRequest( 'GoTo', 'python' ), + ycm.SendCommandRequest( [ 'GoTo' ], 'python' ), equal_to( 'Some response' ) ) diff --git a/python/ycm/tests/testdata/.ycm_extra_conf.py b/python/ycm/tests/testdata/.ycm_extra_conf.py new file mode 100644 index 00000000..2f0aef50 --- /dev/null +++ b/python/ycm/tests/testdata/.ycm_extra_conf.py @@ -0,0 +1,7 @@ +def FlagsForFile( filename, **kwargs ): + temp_dir = kwargs[ 'client_data' ][ 'tempname()' ] + + return { + 'flags': [ temp_dir ], + 'do_cache': False + } diff --git a/python/ycm/tests/youcompleteme_test.py b/python/ycm/tests/youcompleteme_test.py index 27990bc5..e057f46f 100644 --- a/python/ycm/tests/youcompleteme_test.py +++ b/python/ycm/tests/youcompleteme_test.py @@ -140,9 +140,16 @@ def YouCompleteMe_NotifyUserIfServerCrashed_UnexpectedExitCode_test(): } ) -@YouCompleteMeInstance() +@YouCompleteMeInstance( { 'extra_conf_vim_data': [ 'tempname()' ] } ) def YouCompleteMe_DebugInfo_ServerRunning_test( ycm ): - current_buffer = VimBuffer( 'current_buffer' ) + dir_of_script = os.path.dirname( os.path.abspath( __file__ ) ) + buf_name = os.path.join( dir_of_script, 'testdata', 'test.cpp' ) + extra_conf = os.path.join( dir_of_script, 'testdata', '.ycm_extra_conf.py' ) + + from ycm.client.base_request import _LoadExtraConfFile + _LoadExtraConfFile( extra_conf ) + + current_buffer = VimBuffer( buf_name, filetype='cpp' ) with MockVimBuffers( [ current_buffer ], current_buffer ): assert_that( ycm.DebugInfo(), @@ -150,9 +157,14 @@ def YouCompleteMe_DebugInfo_ServerRunning_test( ycm ): 'Client logfile: .+\n' 'Server Python interpreter: .+\n' 'Server Python version: .+\n' - 'Server has Clang support compiled in: (True|False)\n' + 'Server has Clang support compiled in: ' + '(?PTrue)?(?(CLANG)|False)\n' 'Clang version: .+\n' - 'No extra configuration file found\n' + 'Extra configuration file found and loaded\n' + 'Extra configuration path: .*/testdata/\\.ycm_extra_conf\\.py\n' + '(?(CLANG)C-family completer debug information:\n' + ' Compilation database path: None\n' + ' Flags: \\[\'_TEMP_FILE_\'.*\\]\n)' 'Server running at: .+\n' 'Server process ID: \d+\n' 'Server logfiles:\n'