From 5045164a0d3fc4a65c36f5a786bc2cb064f959eb Mon Sep 17 00:00:00 2001 From: "Ilya.Kazakevich" Date: Tue, 19 Jul 2016 17:33:58 +0300 Subject: [PATCH] PY-18839: Adding test --- .../testRunner/env/unit/rerun_derived.py | 13 ++++++++++++ .../PyUnitTestProcessWithConsoleTestTask.java | 3 +-- .../python/testing/PythonUnitTestingTest.java | 21 +++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 python/testData/testRunner/env/unit/rerun_derived.py diff --git a/python/testData/testRunner/env/unit/rerun_derived.py b/python/testData/testRunner/env/unit/rerun_derived.py new file mode 100644 index 000000000000..7aa81ee7ca82 --- /dev/null +++ b/python/testData/testRunner/env/unit/rerun_derived.py @@ -0,0 +1,13 @@ +import unittest + +from unittest import TestCase + +class BaseTestCases: + class TestAbstract(TestCase): + def test_a(self): + raise Exception() + + +class TestDerived(BaseTestCases.TestAbstract): + def test_b(self): + print("Running from derived class") \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/env/python/testing/PyUnitTestProcessWithConsoleTestTask.java b/python/testSrc/com/jetbrains/env/python/testing/PyUnitTestProcessWithConsoleTestTask.java index e1695ce56540..70119731a37e 100644 --- a/python/testSrc/com/jetbrains/env/python/testing/PyUnitTestProcessWithConsoleTestTask.java +++ b/python/testSrc/com/jetbrains/env/python/testing/PyUnitTestProcessWithConsoleTestTask.java @@ -15,7 +15,6 @@ */ package com.jetbrains.env.python.testing; -import com.jetbrains.env.PyEnvTestCase; import com.jetbrains.env.PyProcessWithConsoleTestTask; import com.jetbrains.env.ut.PyUnitTestProcessRunner; import com.jetbrains.python.sdkTools.SdkCreationType; @@ -29,7 +28,7 @@ import org.jetbrains.annotations.NotNull; */ abstract class PyUnitTestProcessWithConsoleTestTask extends PyProcessWithConsoleTestTask { @NotNull - private final String myScriptName; + protected final String myScriptName; PyUnitTestProcessWithConsoleTestTask(@NotNull final String relativePathToTestData, @NotNull final String scriptName) { super(relativePathToTestData, SdkCreationType.EMPTY_SDK); diff --git a/python/testSrc/com/jetbrains/env/python/testing/PythonUnitTestingTest.java b/python/testSrc/com/jetbrains/env/python/testing/PythonUnitTestingTest.java index 1ee2aa5e2edd..78b9cc22a072 100644 --- a/python/testSrc/com/jetbrains/env/python/testing/PythonUnitTestingTest.java +++ b/python/testSrc/com/jetbrains/env/python/testing/PythonUnitTestingTest.java @@ -89,6 +89,27 @@ public final class PythonUnitTestingTest extends PyEnvTestCase { }); } + /** + * Ensure rerun test works even if test is declared in parent + */ + @Test + public void testRerunDerivedClass() throws Exception { + runPythonTest(new PyUnitTestProcessWithConsoleTestTask("/testRunner/env/unit", "rerun_derived.py") { + @Override + protected void checkTestResults(@NotNull final PyUnitTestProcessRunner runner, + @NotNull final String stdout, + @NotNull final String stderr, + @NotNull final String all) { + Assert.assertThat("Premature error", stderr, isEmptyString()); + Assert.assertThat("Wrong number of failed tests", runner.getFailedTestsCount(), equalTo(1)); + } + @NotNull + @Override + protected PyUnitTestProcessRunner createProcessRunner() throws Exception { + return new PyUnitTestProcessRunner(myScriptName, 2); + } + }); + } /** * Run tests, delete file and click "rerun" should throw exception and display error since test ids do not point to correct PSI