diff --git a/python/helpers/pycharm/docrunner.py b/python/helpers/pycharm/docrunner.py index baa28f002c6c..0511c8c791c1 100644 --- a/python/helpers/pycharm/docrunner.py +++ b/python/helpers/pycharm/docrunner.py @@ -1,4 +1,3 @@ -import imp import sys import datetime import os @@ -203,6 +202,15 @@ modules = {} runner = DocTestRunner() + +def _load_file(moduleName, fileName): + if sys.version_info[:2] >= (3, 3): + from importlib import machinery + return machinery.SourceFileLoader(moduleName, fileName).load_module() + else: + import imp + return imp.load_source(moduleName, fileName) + def loadSource(fileName): """ loads source from fileName, @@ -226,7 +234,7 @@ def loadSource(fileName): cnt += 1 moduleName = getModuleName(prefix, cnt) debug("/ Loading " + fileName + " as " + moduleName) - module = imp.load_source(moduleName, fileName) + module = _load_file(moduleName, fileName) modules[moduleName] = module return module @@ -349,4 +357,4 @@ if __name__ == "__main__": debug("/ Loaded " + str(runner.countTests()) + " tests") TeamcityServiceMessages(sys.stdout).testCount(runner.countTests()) - runner.start() \ No newline at end of file + runner.start() diff --git a/python/testSrc/com/jetbrains/env/ut/PyDocTestProcessRunner.java b/python/testSrc/com/jetbrains/env/ut/PyDocTestProcessRunner.java index 0e4ca2cd8cea..a54917e2ac5f 100644 --- a/python/testSrc/com/jetbrains/env/ut/PyDocTestProcessRunner.java +++ b/python/testSrc/com/jetbrains/env/ut/PyDocTestProcessRunner.java @@ -20,6 +20,8 @@ import com.jetbrains.python.testing.PythonTestConfigurationType; import com.jetbrains.python.testing.doctest.PythonDocTestRunConfiguration; import org.jetbrains.annotations.NotNull; +import java.io.IOException; + /** * {@link ProcessWithConsoleRunner} to run doctest * @@ -30,4 +32,10 @@ public class PyDocTestProcessRunner extends PyScriptTestProcessRunner