diff --git a/python/helpers/pycharm/django_manage_tests.py b/python/helpers/pycharm/django_manage_tests.py new file mode 100644 index 000000000000..51c96a2b3ee2 --- /dev/null +++ b/python/helpers/pycharm/django_manage_tests.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +import sys +from django.core.management import execute_manager +from pycharm import django_settings_tests + +if __name__ == "__main__": + if sys.platform == 'win32': + import getpass + import warnings + getpass.getpass = getpass.fallback_getpass + warnings.simplefilter("ignore", category=getpass.GetPassWarning) + execute_manager(django_settings_tests) diff --git a/python/helpers/pycharm/django_settings_tests.py b/python/helpers/pycharm/django_settings_tests.py new file mode 100644 index 000000000000..14d52d8e4187 --- /dev/null +++ b/python/helpers/pycharm/django_settings_tests.py @@ -0,0 +1 @@ +TEST_RUNNER = 'pycharm.django_test_runner.run_tests' diff --git a/python/lib/jython.jar b/python/lib/jython.jar index d67b244e3068..56b9ce471741 100644 Binary files a/python/lib/jython.jar and b/python/lib/jython.jar differ diff --git a/python/python-tests.iml b/python/python-tests.iml index 4efe40fb4ba0..7ea02ff2eb56 100644 --- a/python/python-tests.iml +++ b/python/python-tests.iml @@ -17,6 +17,8 @@ + + diff --git a/python/src/com/jetbrains/python/testing/JythonUnitTestUtil.java b/python/src/com/jetbrains/python/testing/JythonUnitTestUtil.java new file mode 100644 index 000000000000..f5828a7f114b --- /dev/null +++ b/python/src/com/jetbrains/python/testing/JythonUnitTestUtil.java @@ -0,0 +1,38 @@ +package com.jetbrains.python.testing; + +import com.intellij.execution.ExecutionException; +import com.intellij.execution.configurations.GeneralCommandLine; +import com.intellij.execution.configurations.SimpleJavaParameters; +import com.intellij.execution.process.CapturingProcessHandler; +import com.intellij.execution.process.ProcessOutput; +import com.intellij.openapi.application.PathManager; +import com.intellij.openapi.projectRoots.JdkUtil; +import com.intellij.openapi.projectRoots.Sdk; +import com.intellij.openapi.projectRoots.SimpleJavaSdkType; +import com.intellij.util.SystemProperties; + +import java.io.File; + +/** + * @author traff + */ +public class JythonUnitTestUtil { + public static ProcessOutput runJython(String workDir, String pythonPath, String... args) throws ExecutionException { + final SimpleJavaSdkType sdkType = new SimpleJavaSdkType(); + final Sdk ideaJdk = sdkType.createJdk("tmp", SystemProperties.getJavaHome()); + SimpleJavaParameters parameters = new SimpleJavaParameters(); + parameters.setJdk(ideaJdk); + parameters.setMainClass("org.python.util.jython"); + + File jythonJar = new File(PathManager.getHomePath(), "python/lib/jython.jar"); + parameters.getClassPath().add(jythonJar.getPath()); + + parameters.getProgramParametersList().add("-Dpython.path=" + pythonPath + ";" + workDir); + parameters.getProgramParametersList().addAll(args); + parameters.setWorkingDirectory(workDir); + + final GeneralCommandLine commandLine = JdkUtil.setupJVMCommandLine(sdkType.getVMExecutablePath(ideaJdk), parameters, false); + final CapturingProcessHandler processHandler = new CapturingProcessHandler(commandLine.createProcess()); + return processHandler.runProcess(); + } +} diff --git a/python/testSrc/com/jetbrains/python/testRunner/PyTestRunnerTest.java b/python/testSrc/com/jetbrains/python/testRunner/PyTestRunnerTest.java index 42dbf3012252..09c2a9b34b00 100644 --- a/python/testSrc/com/jetbrains/python/testRunner/PyTestRunnerTest.java +++ b/python/testSrc/com/jetbrains/python/testRunner/PyTestRunnerTest.java @@ -14,6 +14,7 @@ import com.intellij.testFramework.LightPlatformTestCase; import com.intellij.util.ArrayUtil; import com.intellij.util.SystemProperties; import com.jetbrains.python.PythonTestUtil; +import com.jetbrains.python.testing.JythonUnitTestUtil; import java.io.File; import java.util.ArrayList; @@ -75,7 +76,7 @@ public class PyTestRunnerTest extends LightPlatformTestCase { List allArgs = new ArrayList(); allArgs.add(utRunner.getPath()); Collections.addAll(allArgs, args); - final ProcessOutput output = runJython(workDir, helpersDir.getPath(), ArrayUtil.toStringArray(allArgs)); + final ProcessOutput output = JythonUnitTestUtil.runJython(workDir, helpersDir.getPath(), ArrayUtil.toStringArray(allArgs)); assertEquals(output.getStderr(), 0, splitLines(output.getStderr()).length); return splitLines(output.getStdout()); } @@ -90,23 +91,4 @@ public class PyTestRunnerTest extends LightPlatformTestCase { } return ArrayUtil.toStringArray(result); } - - private static ProcessOutput runJython(String workDir, String pythonPath, String... args) throws ExecutionException { - final SimpleJavaSdkType sdkType = new SimpleJavaSdkType(); - final Sdk ideaJdk = sdkType.createJdk("tmp", SystemProperties.getJavaHome()); - SimpleJavaParameters parameters = new SimpleJavaParameters(); - parameters.setJdk(ideaJdk); - parameters.setMainClass("org.python.util.jython"); - - File jythonJar = new File(PathManager.getHomePath(), "python/lib/jython.jar"); - parameters.getClassPath().add(jythonJar.getPath()); - - parameters.getProgramParametersList().add("-Dpython.path=" + pythonPath + ";" + workDir); - parameters.getProgramParametersList().addAll(args); - parameters.setWorkingDirectory(workDir); - - final GeneralCommandLine commandLine = JdkUtil.setupJVMCommandLine(sdkType.getVMExecutablePath(ideaJdk), parameters, false); - final CapturingProcessHandler processHandler = new CapturingProcessHandler(commandLine.createProcess()); - return processHandler.runProcess(); - } }