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();
- }
}