From d002bd2dab707f5e18586cd600b65cfc375495ce Mon Sep 17 00:00:00 2001 From: "Ilya.Kazakevich" Date: Tue, 10 Sep 2019 23:04:01 +0300 Subject: [PATCH] PY-31751: Do not use deprecated API in doctest runner to prevent warnings. For 3.3+ we now use new api. We also use "-W error" in tests to make sure no warning issued GitOrigin-RevId: a668da71d8705f061873a4b2c09a4fc3f0082472 --- python/helpers/pycharm/docrunner.py | 14 +++++++++++--- .../jetbrains/env/ut/PyDocTestProcessRunner.java | 8 ++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) 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