def ServerManagement_OpenProject_RelativePath_test(app): StartJavaCompleterServerInDirectory( app, PathToTestFile('simple_gradle_project', 'src', 'main', 'java', 'com', 'test')) # Initially, we detect the gradle project... gradle_project = PathToTestFile('simple_gradle_project') maven_project = PathToTestFile('simple_maven_project') # Run the debug info to check that we have the correct project dir request_data = BuildRequest(filetype='java') assert_that( app.post_json('/debug_info', request_data).json, CompleterProjectDirectoryMatcher(gradle_project)) # We then force it to reload the maven project app.post_json( '/run_completer_command', BuildRequest( filetype='java', command_arguments=[ 'OpenProject', os.path.join('..', 'simple_maven_project'), ], working_dir=gradle_project, ), ) # Run the debug info to check that we now have the maven project, without # changing anything else request_data = BuildRequest(filetype='java') assert_that( app.post_json('/debug_info', request_data).json, CompleterProjectDirectoryMatcher(maven_project))
def ServerManagement_RestartServer_test( app ): StartClangd( app, PathToTestFile( 'basic.cpp' ) ) assert_that( GetDebugInfo( app ), CompleterProjectDirectoryMatcher( PathToTestFile() ) ) app.post_json( '/run_completer_command', BuildRequest( filepath = PathToTestFile( 'test-include', 'main.cpp' ), filetype = 'cpp', command_arguments = [ 'RestartServer' ], ), ) WaitUntilCompleterServerReady( app, 'cpp' ) assert_that( GetDebugInfo( app ), has_entry( 'completer', has_entries( { 'name': 'C-family', 'servers': contains_exactly( has_entries( { 'name': 'Clangd', 'is_running': True, 'extras': has_item( has_entries( { 'key': 'Project Directory', 'value': PathToTestFile( 'test-include' ), } ) ) } ) ) } ) ) )
def ServerManagement_ProjectDetection_NoParent_test( app ): with TemporaryTestDir() as tmp_dir: StartJavaCompleterServerInDirectory( app, tmp_dir ) # Run the debug info to check that we have the correct project dir (cwd) request_data = BuildRequest( filetype = 'java' ) assert_that( app.post_json( '/debug_info', request_data ).json, CompleterProjectDirectoryMatcher( tmp_dir ) )
def Test( app ): StartJavaCompleterServerInDirectory( app, tmp_dir ) # Run the debug info to check that we have the correct project dir (cwd) request_data = BuildRequest( filetype = 'java' ) assert_that( app.post_json( '/debug_info', request_data ).json, CompleterProjectDirectoryMatcher( tmp_dir ) )
def ServerManagement_WipeWorkspace_WithConfig( app ): StartJavaCompleterServerInDirectory( app, PathToTestFile( 'simple_eclipse_project', 'src' ) ) project = PathToTestFile( 'simple_eclipse_project' ) filepath = PathToTestFile( 'simple_eclipse_project', 'src', 'com', 'youcompleteme', 'Test.java' ) app.post_json( '/run_completer_command', BuildRequest( filepath = filepath, filetype = 'java', command_arguments = [ 'WipeWorkspace', '--with-config' ], ), ) WaitUntilCompleterServerReady( app, 'java' ) assert_that( app.post_json( '/debug_info', BuildRequest( filetype = 'java', filepath = filepath ) ).json, CompleterProjectDirectoryMatcher( project ) )
def ServerManagement_RestartServer_test( app ): StartJavaCompleterServerInDirectory( app, PathToTestFile( 'simple_eclipse_project' ) ) eclipse_project = PathToTestFile( 'simple_eclipse_project' ) maven_project = PathToTestFile( 'simple_maven_project' ) # Run the debug info to check that we have the correct project dir request_data = BuildRequest( filetype = 'java' ) assert_that( app.post_json( '/debug_info', request_data ).json, CompleterProjectDirectoryMatcher( eclipse_project ) ) # Restart the server with a different client working directory filepath = PathToTestFile( 'simple_maven_project', 'src', 'main', 'java', 'com', 'test', 'TestFactory.java' ) app.post_json( '/run_completer_command', BuildRequest( filepath = filepath, filetype = 'java', working_dir = maven_project, command_arguments = [ 'RestartServer' ], ), ) WaitUntilCompleterServerReady( app, 'java' ) app.post_json( '/event_notification', BuildRequest( filepath = filepath, filetype = 'java', working_dir = maven_project, event_name = 'FileReadyToParse', ) ) # Run the debug info to check that we have the correct project dir request_data = BuildRequest( filetype = 'java' ) assert_that( app.post_json( '/debug_info', request_data ).json, CompleterProjectDirectoryMatcher( maven_project ) )
def ServerManagement_ProjectDetection_EclipseParent_test( app ): StartJavaCompleterServerInDirectory( app, PathToTestFile( 'simple_eclipse_project', 'src' ) ) project = PathToTestFile( 'simple_eclipse_project' ) # Run the debug info to check that we have the correct project dir request_data = BuildRequest( filetype = 'java' ) assert_that( app.post_json( '/debug_info', request_data ).json, CompleterProjectDirectoryMatcher( project ) )
def test_ServerManagement_ProjectDetection_NoParent(self): with TemporaryTestDir() as tmp_dir: with isolated_app() as app: StartJavaCompleterServerInDirectory(app, tmp_dir) # Run the debug info to check that we have the correct project dir (cwd) request_data = BuildRequest(filetype='java', filepath=os.path.join( tmp_dir, 'foo.java')) assert_that( app.post_json('/debug_info', request_data).json, CompleterProjectDirectoryMatcher(tmp_dir))
def ServerManagement_ProjectDetection_MultipleProjects_test(app): # The ycm_extra_conf.py file should set the project path to # multiple_projects/src project = PathToTestFile('multiple_projects', 'src') StartJavaCompleterServerWithFile( app, os.path.join(project, 'core', 'java', 'com', 'puremourning', 'widget', 'core', 'Utils.java')) # Run the debug info to check that we have the correct project dir request_data = BuildRequest(filetype='java') assert_that( app.post_json('/debug_info', request_data).json, CompleterProjectDirectoryMatcher(project))
def test_ServerManagement_ProjectDetection_MavenParent_Submodule( self, app): StartJavaCompleterServerInDirectory( app, PathToTestFile('simple_maven_project', 'simple_submodule', 'src', 'main', 'java', 'com', 'test')) project = PathToTestFile('simple_maven_project') # Run the debug info to check that we have the correct project dir request_data = BuildRequest(filetype='java') assert_that( app.post_json('/debug_info', request_data).json, CompleterProjectDirectoryMatcher(project))
def ServerManagement_WipeWorkspace_WithConfig_test( isolated_app ): with TemporaryTestDir() as tmp_dir: with isolated_app( { 'java_jdtls_use_clean_workspace': 0, 'java_jdtls_workspace_root_path': tmp_dir } ) as app: StartJavaCompleterServerInDirectory( app, PathToTestFile( 'simple_eclipse_project', 'src' ) ) project = PathToTestFile( 'simple_eclipse_project' ) filepath = PathToTestFile( 'simple_eclipse_project', 'src', 'com', 'youcompleteme', 'Test.java' ) app.post_json( '/run_completer_command', BuildRequest( filepath = filepath, filetype = 'java', command_arguments = [ 'WipeWorkspace', '--with-config' ], ), ) WaitUntilCompleterServerReady( app, 'java' ) assert_that( app.post_json( '/debug_info', BuildRequest( filetype = 'java', filepath = filepath ) ).json, CompleterProjectDirectoryMatcher( project ) ) assert_that( app.post_json( '/debug_info', BuildRequest( filetype = 'java', filepath = filepath ) ).json, has_entry( 'completer', has_entry( 'servers', contains_exactly( has_entry( 'extras', has_item( has_entries( { 'key': 'Workspace Path', 'value': starts_with( tmp_dir ), } ) ) ) ) ) ) )