From fecfdd52f426cf1b2770edee7dc9d9ecab692441 Mon Sep 17 00:00:00 2001 From: "Ilya.Kazakevich" Date: Wed, 27 Nov 2019 20:00:36 +0300 Subject: [PATCH] Do not store test factories in static fields. ``ConfigurationType`` must be unloadable because of "dynamic" EP. Since ConfigurationFactory stores type as final field, we can't store factories as static fields. GitOrigin-RevId: 0333eb6632de2f51c5c28651cc595fe895490e4c --- python/src/com/jetbrains/python/testing/PyNoseTest.kt | 4 ++-- python/src/com/jetbrains/python/testing/PyTest.kt | 2 +- .../src/com/jetbrains/python/testing/PyTestsShared.kt | 10 +++++----- python/src/com/jetbrains/python/testing/PyTrialTest.kt | 4 ++-- python/src/com/jetbrains/python/testing/PyUnitTest.kt | 4 ++-- .../env/python/testing/PythonNoseTestingTest.java | 2 +- .../env/python/testing/PythonPyTestingTest.java | 6 +++--- .../jetbrains/env/python/testing/PythonTrialTest.kt | 2 +- .../env/python/testing/PythonUnitTestingTest.java | 4 ++-- .../com/jetbrains/env/ut/PyNoseTestProcessRunner.java | 2 +- .../com/jetbrains/env/ut/PyTestTestProcessRunner.java | 2 +- .../com/jetbrains/env/ut/PyUnitTestProcessRunner.java | 2 +- 12 files changed, 22 insertions(+), 22 deletions(-) diff --git a/python/src/com/jetbrains/python/testing/PyNoseTest.kt b/python/src/com/jetbrains/python/testing/PyNoseTest.kt index 0ac01311af51..7c7d1caeff8c 100644 --- a/python/src/com/jetbrains/python/testing/PyNoseTest.kt +++ b/python/src/com/jetbrains/python/testing/PyNoseTest.kt @@ -45,8 +45,8 @@ class PyNoseTestConfiguration(project: Project, factory: PyNoseTestFactory) : override fun isFrameworkInstalled(): Boolean = VFSTestFrameworkListener.getInstance().isTestFrameworkInstalled(sdk, PyNames.NOSE_TEST) } -object PyNoseTestFactory : PyAbstractTestFactory() { +class PyNoseTestFactory : PyAbstractTestFactory() { override fun createTemplateConfiguration(project: Project) = PyNoseTestConfiguration(project, this) override fun getName(): String = PyTestFrameworkService.getSdkReadableNameByFramework(PyNames.NOSE_TEST) -} \ No newline at end of file +} diff --git a/python/src/com/jetbrains/python/testing/PyTest.kt b/python/src/com/jetbrains/python/testing/PyTest.kt index 2c6ed0be938b..4180c6198868 100644 --- a/python/src/com/jetbrains/python/testing/PyTest.kt +++ b/python/src/com/jetbrains/python/testing/PyTest.kt @@ -81,7 +81,7 @@ class PyTestConfiguration(project: Project, factory: PyTestFactory) } } -object PyTestFactory : PyAbstractTestFactory() { +class PyTestFactory : PyAbstractTestFactory() { override fun createTemplateConfiguration(project: Project): PyTestConfiguration = PyTestConfiguration(project, this) override fun getName(): String = PyTestFrameworkService.getSdkReadableNameByFramework(PyNames.PY_TEST) diff --git a/python/src/com/jetbrains/python/testing/PyTestsShared.kt b/python/src/com/jetbrains/python/testing/PyTestsShared.kt index b5ae8db67537..924ea4feacd1 100644 --- a/python/src/com/jetbrains/python/testing/PyTestsShared.kt +++ b/python/src/com/jetbrains/python/testing/PyTestsShared.kt @@ -66,11 +66,11 @@ import java.util.regex.Matcher /** * New configuration factories */ -internal val pythonFactories: Array = arrayOf( - PyUnitTestFactory, - PyTestFactory, - PyNoseTestFactory, - PyTrialTestFactory) +internal val pythonFactories get() = arrayOf( + PyUnitTestFactory(), + PyTestFactory(), + PyNoseTestFactory(), + PyTrialTestFactory()) /** * Accepts text that may be wrapped in TC message. Unwarps it and removes TC escape code. diff --git a/python/src/com/jetbrains/python/testing/PyTrialTest.kt b/python/src/com/jetbrains/python/testing/PyTrialTest.kt index d069ef7d261f..9ed44c8abb5a 100644 --- a/python/src/com/jetbrains/python/testing/PyTrialTest.kt +++ b/python/src/com/jetbrains/python/testing/PyTrialTest.kt @@ -53,8 +53,8 @@ class PyTrialTestConfiguration(project: Project, factory: PyTrialTestFactory) } -object PyTrialTestFactory : PyAbstractTestFactory() { +class PyTrialTestFactory : PyAbstractTestFactory() { override fun createTemplateConfiguration(project: Project): PyTrialTestConfiguration = PyTrialTestConfiguration(project, this) override fun getName(): String = PyTestFrameworkService.getSdkReadableNameByFramework(PyNames.TRIAL_TEST) -} \ No newline at end of file +} diff --git a/python/src/com/jetbrains/python/testing/PyUnitTest.kt b/python/src/com/jetbrains/python/testing/PyUnitTest.kt index da0d30b5c88a..78ccd84a60d3 100644 --- a/python/src/com/jetbrains/python/testing/PyUnitTest.kt +++ b/python/src/com/jetbrains/python/testing/PyUnitTest.kt @@ -102,8 +102,8 @@ class PyUnitTestConfiguration(project: Project, factory: PyUnitTestFactory) : override fun shouldSeparateTargetPath() = false } -object PyUnitTestFactory : PyAbstractTestFactory() { +class PyUnitTestFactory : PyAbstractTestFactory() { override fun createTemplateConfiguration(project: Project): PyUnitTestConfiguration = PyUnitTestConfiguration(project, this) override fun getName(): String = PythonTestConfigurationsModel.PYTHONS_UNITTEST_NAME -} \ No newline at end of file +} diff --git a/python/testSrc/com/jetbrains/env/python/testing/PythonNoseTestingTest.java b/python/testSrc/com/jetbrains/env/python/testing/PythonNoseTestingTest.java index e29f76fc6812..b055bf930158 100644 --- a/python/testSrc/com/jetbrains/env/python/testing/PythonNoseTestingTest.java +++ b/python/testSrc/com/jetbrains/env/python/testing/PythonNoseTestingTest.java @@ -166,7 +166,7 @@ public final class PythonNoseTestingTest extends PyEnvTestCase { @NotNull @Override protected PyNoseTestFactory createFactory() { - return PyNoseTestFactory.INSTANCE; + return new PyNoseTestFactory(); } }); } diff --git a/python/testSrc/com/jetbrains/env/python/testing/PythonPyTestingTest.java b/python/testSrc/com/jetbrains/env/python/testing/PythonPyTestingTest.java index c2f7a2cc9af9..24a7437e00ab 100644 --- a/python/testSrc/com/jetbrains/env/python/testing/PythonPyTestingTest.java +++ b/python/testSrc/com/jetbrains/env/python/testing/PythonPyTestingTest.java @@ -120,7 +120,7 @@ public final class PythonPyTestingTest extends PyEnvTestCase { final CharBuffer data = Charset.defaultCharset().decode(ByteBuffer.wrap(file.contentsToByteArray())); final Element element = builder.build(new StringReader(data.toString())).getRootElement(); - final PyTestConfiguration configuration = new PyTestConfiguration(myFixture.getProject(), PyTestFactory.INSTANCE); + final PyTestConfiguration configuration = new PyTestConfiguration(myFixture.getProject(), new PyTestFactory()); configuration.readExternal(element); return configuration; } @@ -484,7 +484,7 @@ public final class PythonPyTestingTest extends PyEnvTestCase { @NotNull @Override protected PyAbstractTestFactory createFactory() { - return PyTestFactory.INSTANCE; + return new PyTestFactory(); } @Override @@ -600,7 +600,7 @@ public final class PythonPyTestingTest extends PyEnvTestCase { @NotNull @Override protected PyTestFactory createFactory() { - return PyTestFactory.INSTANCE; + return new PyTestFactory(); } }); } diff --git a/python/testSrc/com/jetbrains/env/python/testing/PythonTrialTest.kt b/python/testSrc/com/jetbrains/env/python/testing/PythonTrialTest.kt index dd3242b28c18..f3c6144879c5 100644 --- a/python/testSrc/com/jetbrains/env/python/testing/PythonTrialTest.kt +++ b/python/testSrc/com/jetbrains/env/python/testing/PythonTrialTest.kt @@ -50,7 +50,7 @@ internal class PythonTrialTest : PythonUnitTestingLikeTest( - PyTrialTestFactory, PyTrialTestConfiguration::class.java, scriptName, timesToRerunFailedTests) { + PyTrialTestFactory(), PyTrialTestConfiguration::class.java, scriptName, timesToRerunFailedTests) { override fun configurationCreatedAndWillLaunch(configuration: PyTrialTestConfiguration) { super.configurationCreatedAndWillLaunch(configuration) configuration.additionalArguments = "--temp-directory=" + File(createTempDir(), "trial").path diff --git a/python/testSrc/com/jetbrains/env/python/testing/PythonUnitTestingTest.java b/python/testSrc/com/jetbrains/env/python/testing/PythonUnitTestingTest.java index ea99ba4a5b62..b2733be449d0 100644 --- a/python/testSrc/com/jetbrains/env/python/testing/PythonUnitTestingTest.java +++ b/python/testSrc/com/jetbrains/env/python/testing/PythonUnitTestingTest.java @@ -237,7 +237,7 @@ public final class PythonUnitTestingTest extends PythonUnitTestingLikeTest { public PyNoseTestProcessRunner(@NotNull final String scriptName, final int timesToRerunFailedTests) { - super(PyNoseTestFactory.INSTANCE, + super(new PyNoseTestFactory(), PyNoseTestConfiguration.class, scriptName, timesToRerunFailedTests); } } diff --git a/python/testSrc/com/jetbrains/env/ut/PyTestTestProcessRunner.java b/python/testSrc/com/jetbrains/env/ut/PyTestTestProcessRunner.java index 279c39b07543..753a4845448a 100644 --- a/python/testSrc/com/jetbrains/env/ut/PyTestTestProcessRunner.java +++ b/python/testSrc/com/jetbrains/env/ut/PyTestTestProcessRunner.java @@ -28,7 +28,7 @@ import org.jetbrains.annotations.NotNull; */ public class PyTestTestProcessRunner extends PyScriptTestProcessRunner { public PyTestTestProcessRunner(@NotNull final String scriptName, final int timesToRerunFailedTests) { - super(PyTestFactory.INSTANCE, + super(new PyTestFactory(), PyTestConfiguration.class, scriptName, timesToRerunFailedTests); } } diff --git a/python/testSrc/com/jetbrains/env/ut/PyUnitTestProcessRunner.java b/python/testSrc/com/jetbrains/env/ut/PyUnitTestProcessRunner.java index 02016021e561..f86a5a092ddc 100644 --- a/python/testSrc/com/jetbrains/env/ut/PyUnitTestProcessRunner.java +++ b/python/testSrc/com/jetbrains/env/ut/PyUnitTestProcessRunner.java @@ -38,7 +38,7 @@ public class PyUnitTestProcessRunner extends PyScriptTestProcessRunner