From 140caeb9850b225f18305dfc381861ac28cdd495 Mon Sep 17 00:00:00 2001 From: "Ilya.Kazakevich" Date: Thu, 5 Apr 2018 02:00:27 +0300 Subject: [PATCH] PY-28075: twisted trial, as unittest, can't run on plain functions --- .../jetbrains/python/testing/PyTestsShared.kt | 4 +++- .../testing/PythonUnitTestingLikeTest.java | 22 +++++++++++++++++++ .../python/testing/PythonUnitTestingTest.java | 18 --------------- 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/python/src/com/jetbrains/python/testing/PyTestsShared.kt b/python/src/com/jetbrains/python/testing/PyTestsShared.kt index 59afe4452183..9fd014dc15e1 100644 --- a/python/src/com/jetbrains/python/testing/PyTestsShared.kt +++ b/python/src/com/jetbrains/python/testing/PyTestsShared.kt @@ -55,6 +55,7 @@ import com.jetbrains.extenstions.QNameResolveContext import com.jetbrains.extenstions.getElementAndResolvableName import com.jetbrains.extenstions.resolveToElement import com.jetbrains.python.PyBundle +import com.jetbrains.python.PyNames import com.jetbrains.python.psi.PyFile import com.jetbrains.python.psi.PyFunction import com.jetbrains.python.psi.PyQualifiedNameOwner @@ -101,7 +102,8 @@ internal fun getAdditionalArgumentsPropertyName() = com.jetbrains.python.testing /** * If runner name is here that means test runner only can run inheritors for TestCase */ -val RunnersThatRequireTestCaseClass = setOf(PythonTestConfigurationsModel.PYTHONS_UNITTEST_NAME) +val RunnersThatRequireTestCaseClass = setOf(PythonTestConfigurationsModel.PYTHONS_UNITTEST_NAME, + PyTestFrameworkService.getSdkReadableNameByFramework(PyNames.TRIAL_TEST)) /** * Checks if element could be test target diff --git a/python/testSrc/com/jetbrains/env/python/testing/PythonUnitTestingLikeTest.java b/python/testSrc/com/jetbrains/env/python/testing/PythonUnitTestingLikeTest.java index 845e80083245..3281ed5c90dc 100644 --- a/python/testSrc/com/jetbrains/env/python/testing/PythonUnitTestingLikeTest.java +++ b/python/testSrc/com/jetbrains/env/python/testing/PythonUnitTestingLikeTest.java @@ -17,12 +17,16 @@ package com.jetbrains.env.python.testing; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiFile; import com.jetbrains.env.EnvTestTagsRequired; import com.jetbrains.env.PyEnvTestCase; import com.jetbrains.env.ut.PyScriptTestProcessRunner; import com.jetbrains.env.ut.PyUnitTestProcessRunner; import com.jetbrains.python.psi.LanguageLevel; import com.jetbrains.python.sdk.flavors.IronPythonSdkFlavor; +import com.jetbrains.python.testing.PyUnitTestConfiguration; +import com.jetbrains.python.testing.PythonTestConfigurationsModel; import org.hamcrest.Matchers; import org.jetbrains.annotations.NotNull; import org.junit.Assert; @@ -326,4 +330,22 @@ public abstract class PythonUnitTestingLikeTest(PythonTestConfigurationsModel.PYTHONS_UNITTEST_NAME, + PyUnitTestConfiguration.class) { + @Override + protected boolean configurationShouldBeProducedForElement(@NotNull final PsiElement element) { + // test_functions.py and test_foo do not contain any TestCase and can't be launched with unittest + final PsiFile file = element.getContainingFile(); + if (file == null) { + return true; + } + final String name = file.getName(); + return !(name.endsWith("test_functions.py") || name.endsWith("test_foo.py")); + } + }); + } } diff --git a/python/testSrc/com/jetbrains/env/python/testing/PythonUnitTestingTest.java b/python/testSrc/com/jetbrains/env/python/testing/PythonUnitTestingTest.java index 62bbb5dd58a1..ff5d04d781e7 100644 --- a/python/testSrc/com/jetbrains/env/python/testing/PythonUnitTestingTest.java +++ b/python/testSrc/com/jetbrains/env/python/testing/PythonUnitTestingTest.java @@ -841,24 +841,6 @@ public final class PythonUnitTestingTest extends PythonUnitTestingLikeTest(PythonTestConfigurationsModel.PYTHONS_UNITTEST_NAME, - PyUnitTestConfiguration.class) { - @Override - protected boolean configurationShouldBeProducedForElement(@NotNull final PsiElement element) { - // test_functions.py and test_foo do not contain any TestCase and can't be launched with unittest - final PsiFile file = element.getContainingFile(); - if (file == null) { - return true; - } - final String name = file.getName(); - return !(name.endsWith("test_functions.py") || name.endsWith("test_foo.py")); - } - }); - } - private abstract class PyUnitTestProcessWithConsoleTestTask extends PyUnitTestLikeProcessWithConsoleTestTask { public PyUnitTestProcessWithConsoleTestTask(@NotNull String relativePathToTestData,