This commit is contained in:
Vladimir Krivosheev
2014-08-14 16:13:58 +02:00
parent 2b15356cef
commit a1b524cd9d
4 changed files with 25 additions and 17 deletions
@@ -417,10 +417,9 @@ public class ConfigurationsTest extends BaseConfigurationTestCase {
return outputs;
}
private JavaParameters checkCanRun(RunConfiguration configuration) throws ExecutionException {
private static JavaParameters checkCanRun(RunConfiguration configuration) throws ExecutionException {
final RunProfileState state;
Executor executor = DefaultRunExecutor.getRunExecutorInstance();
state = configuration.getState(executor, new ExecutionEnvironmentBuilder(myProject, executor).runProfile(new MockProfile()).build());
state = ExecutionEnvironmentBuilder.create(DefaultRunExecutor.getRunExecutorInstance(), configuration).runProfile(new MockProfile()).build().getState();
assertNotNull(state);
assertTrue(state instanceof JavaCommandLine);
if (state instanceof TestPackage) {
@@ -17,6 +17,7 @@ package com.intellij.execution.runners;
import com.intellij.execution.*;
import com.intellij.execution.configurations.ConfigurationPerRunnerSettings;
import com.intellij.execution.configurations.RunConfiguration;
import com.intellij.execution.configurations.RunProfile;
import com.intellij.execution.configurations.RunnerSettings;
import com.intellij.execution.ui.RunContentDescriptor;
@@ -79,6 +80,11 @@ public final class ExecutionEnvironmentBuilder {
return builder.runnerAndSettings(builder.myRunner, settings);
}
@NotNull
public static ExecutionEnvironmentBuilder create(@NotNull Executor executor, @NotNull RunConfiguration configuration) {
return new ExecutionEnvironmentBuilder(configuration.getProject(), executor).runProfile(configuration);
}
@NotNull
Executor getExecutor() {
return myExecutor;
@@ -72,7 +72,7 @@ public class PyRerunFailedTestsAction extends AbstractRerunFailedTestsAction {
public RunProfileState getState(@NotNull Executor executor, @NotNull ExecutionEnvironment env) throws ExecutionException {
final AbstractPythonRunConfiguration configuration = ((AbstractPythonRunConfiguration)getPeer());
return new FailedPythonTestCommandLineStateBase(configuration, env,
(PythonTestCommandLineStateBase)configuration.getState(executor, env));
(PythonTestCommandLineStateBase)configuration.getState(executor, env));
}
}
@@ -20,16 +20,15 @@ import com.intellij.execution.ExecutionException;
import com.intellij.execution.Executor;
import com.intellij.execution.configurations.ConfigurationFactory;
import com.intellij.execution.configurations.ConfigurationType;
import com.intellij.execution.configurations.GeneralCommandLine;
import com.intellij.execution.executors.DefaultDebugExecutor;
import com.intellij.execution.executors.DefaultRunExecutor;
import com.intellij.execution.runners.ExecutionEnvironment;
import com.intellij.execution.runners.ExecutionEnvironmentBuilder;
import com.intellij.openapi.project.Project;
import com.jetbrains.python.PythonHelpersLocator;
import com.jetbrains.python.debugger.PyDebugRunner;
import com.jetbrains.python.run.AbstractPythonRunConfiguration;
import com.jetbrains.python.run.PythonCommandLineState;
import org.jetbrains.annotations.NotNull;
import java.util.List;
@@ -59,11 +58,9 @@ public abstract class PyCommandLineTestCase extends PyTestCase {
protected List<String> buildRunCommandLine(AbstractPythonRunConfiguration configuration) {
try {
final Executor executor = DefaultRunExecutor.getRunExecutorInstance();
ExecutionEnvironment env = new ExecutionEnvironmentBuilder(myFixture.getProject(), executor).runProfile(configuration).build();
final PythonCommandLineState state = (PythonCommandLineState)configuration.getState(executor, env);
final GeneralCommandLine generalCommandLine = state.generateCommandLine();
return generalCommandLine.getParametersList().getList();
PythonCommandLineState state = getState(configuration, DefaultRunExecutor.getRunExecutorInstance());
assert state != null;
return state.generateCommandLine().getParametersList().getList();
}
catch (ExecutionException e) {
throw new RuntimeException(e);
@@ -72,15 +69,21 @@ public abstract class PyCommandLineTestCase extends PyTestCase {
protected List<String> buildDebugCommandLine(AbstractPythonRunConfiguration configuration) {
try {
final Executor executor = DefaultDebugExecutor.getDebugExecutorInstance();
ExecutionEnvironment env = new ExecutionEnvironmentBuilder(myFixture.getProject(), executor).runProfile(configuration).build();
final PythonCommandLineState state = (PythonCommandLineState)configuration.getState(executor, env);
final GeneralCommandLine generalCommandLine =
state.generateCommandLine(PyDebugRunner.createCommandLinePatchers(configuration.getProject(), state, configuration, PORT));
return generalCommandLine.getParametersList().getList();
PythonCommandLineState state = getState(configuration, DefaultDebugExecutor.getDebugExecutorInstance());
assert state != null;
return state.generateCommandLine(PyDebugRunner.createCommandLinePatchers(configuration.getProject(), state, configuration, PORT))
.getParametersList()
.getList();
}
catch (ExecutionException e) {
throw new RuntimeException(e);
}
}
private static PythonCommandLineState getState(@NotNull AbstractPythonRunConfiguration configuration, @NotNull Executor executor) throws ExecutionException {
return (PythonCommandLineState)ExecutionEnvironmentBuilder.create(executor, configuration)
.build()
.getState();
}
}