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_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 ServerManagement_ProjectDetection_NoParent_test( isolated_app ): 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_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_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 ), } ) ) ) ) ) ) )
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': 'clangd', 'servers': contains( has_entries({ 'name': 'clangd', 'is_running': True, 'extras': has_item( has_entries({ 'key': 'Project Directory', 'value': PathToTestFile('test-include'), })) })) })))
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))