From bdff22e761c70fd0df2f06f5418a35ba46523859 Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Thu, 16 Dec 2010 12:52:50 +0300 Subject: [PATCH 1/3] added settings saving --- python/src/META-INF/python-plugin-common.xml | 2 + .../PythonTestConfigurationsModel.java | 73 +++---------------- .../PythonUnitTestConfigurationProducer.java | 6 +- .../PythonUnitTestConfigurationType.java | 2 - .../testing/TestRunnerConfigurable.java | 45 ++++++++---- .../python/testing/TestRunnerService.java | 56 ++++++++++++++ .../PythonNoseTestConfigurationProducer.java | 17 ++--- .../PythonNoseTestRunConfigurationType.java | 3 - .../pytest/PyTestRunConfigurationType.java | 3 - 9 files changed, 109 insertions(+), 98 deletions(-) create mode 100644 python/src/com/jetbrains/python/testing/TestRunnerService.java diff --git a/python/src/META-INF/python-plugin-common.xml b/python/src/META-INF/python-plugin-common.xml index de9a60e03b8e..9a05e17ea07a 100644 --- a/python/src/META-INF/python-plugin-common.xml +++ b/python/src/META-INF/python-plugin-common.xml @@ -360,6 +360,8 @@ implementationClass="com.jetbrains.python.buildout.config.BuildoutCfgHighlighterFactory"/> + diff --git a/python/src/com/jetbrains/python/testing/PythonTestConfigurationsModel.java b/python/src/com/jetbrains/python/testing/PythonTestConfigurationsModel.java index c0759397658f..d0552c0d3758 100644 --- a/python/src/com/jetbrains/python/testing/PythonTestConfigurationsModel.java +++ b/python/src/com/jetbrains/python/testing/PythonTestConfigurationsModel.java @@ -16,87 +16,36 @@ package com.jetbrains.python.testing; +import com.intellij.openapi.project.Project; +import com.intellij.ui.CollectionComboBoxModel; import com.jetbrains.python.PyBundle; -import javax.swing.*; -import javax.swing.event.ListDataListener; -import java.util.ArrayList; -import java.util.HashSet; import java.util.List; -import java.util.Set; /** * User: catherine */ -public class PythonTestConfigurationsModel implements ComboBoxModel { + +public class PythonTestConfigurationsModel extends CollectionComboBoxModel { public static final String PYTHONS_UNITTEST_NAME = PyBundle.message("runcfg.unittest.display_name"); public static final String PYTHONS_NOSETEST_NAME = PyBundle.message("runcfg.nosetests.display_name"); public static final String PY_TEST_NAME = PyBundle.message("runcfg.pytest.display_name"); - private static final PythonTestConfigurationsModel INSTANCE = new PythonTestConfigurationsModel(); - private final List myConfigurationTypes = new ArrayList(); - private Set myListDataListeners = new HashSet(); - - private String myDefault; private String myProjectConfiguration; - private String myGlobalSelected; + private Project myProject; - private PythonTestConfigurationsModel() { - myDefault = PYTHONS_UNITTEST_NAME; - myProjectConfiguration = PYTHONS_UNITTEST_NAME; - myGlobalSelected = myDefault; + public PythonTestConfigurationsModel(final List items, final Object selection, Project project) { + super(items, selection); + myProject = project; + myProjectConfiguration = TestRunnerService.getInstance(myProject).getProjectConfiguration(); } - - public void addConfiguration(final String newConfiguration, boolean changeSelection) { - myConfigurationTypes.add(newConfiguration); - if (changeSelection) { - setSelectedItem(newConfiguration); - } - } - public void reset() { - myDefault = myProjectConfiguration; setSelectedItem(myProjectConfiguration); } public void apply() { - myProjectConfiguration = myGlobalSelected; - } - - @Override - public void setSelectedItem(Object o) { - if (myGlobalSelected != o) { - myGlobalSelected = (String)o; - } - } - - @Override - public Object getSelectedItem() { - return myGlobalSelected; - } - - @Override - public int getSize() { - return myConfigurationTypes.size(); - } - - @Override - public Object getElementAt(int i) { - return myConfigurationTypes.get(i); - } - - @Override - public void addListDataListener(ListDataListener listDataListener) { - myListDataListeners.add(listDataListener); - } - - @Override - public void removeListDataListener(ListDataListener listDataListener) { - myListDataListeners.remove(listDataListener); - } - - public static PythonTestConfigurationsModel getInstance() { - return INSTANCE; + myProjectConfiguration = (String)getSelectedItem(); + TestRunnerService.getInstance(myProject).setProjectConfiguration(myProjectConfiguration); } public Object getProjectConfiguration() { diff --git a/python/src/com/jetbrains/python/testing/PythonUnitTestConfigurationProducer.java b/python/src/com/jetbrains/python/testing/PythonUnitTestConfigurationProducer.java index 472239c99856..f8d207ac0dd4 100644 --- a/python/src/com/jetbrains/python/testing/PythonUnitTestConfigurationProducer.java +++ b/python/src/com/jetbrains/python/testing/PythonUnitTestConfigurationProducer.java @@ -12,7 +12,6 @@ import com.intellij.execution.configurations.ConfigurationTypeUtil; import com.intellij.execution.junit.RuntimeConfigurationProducer; import com.intellij.facet.Facet; import com.intellij.facet.FacetManager; -import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleUtil; import com.intellij.openapi.vfs.VirtualFile; @@ -45,14 +44,15 @@ public class PythonUnitTestConfigurationProducer extends RuntimeConfigurationPro if (!isActive) return null; RunnerAndConfigurationSettings settings; - Module module = location.getModule(); + /*Module module = location.getModule(); + if (module != null) { for (RunnableUnitTestFilter f : Extensions.getExtensions(RunnableUnitTestFilter.EP_NAME)) { if (f.isRunnableUnitTest(location.getPsiElement().getContainingFile(), module)) { return null; } } - } + }*/ if (PythonUnitTestRunnableScriptFilter.isIfNameMain(location)) { return null; diff --git a/python/src/com/jetbrains/python/testing/PythonUnitTestConfigurationType.java b/python/src/com/jetbrains/python/testing/PythonUnitTestConfigurationType.java index ce7785e7e4c6..b817dc0885d8 100644 --- a/python/src/com/jetbrains/python/testing/PythonUnitTestConfigurationType.java +++ b/python/src/com/jetbrains/python/testing/PythonUnitTestConfigurationType.java @@ -27,13 +27,11 @@ public class PythonUnitTestConfigurationType extends ConfigurationTypeBase { private final static Icon ICON = IconLoader.getIcon("/com/jetbrains/python/icons/python.png"); private static class PythonUnitTestConfigurationFactory extends ConfigurationFactory { - final private PythonTestConfigurationsModel myModel = PythonTestConfigurationsModel.getInstance(); protected PythonUnitTestConfigurationFactory(ConfigurationType configurationType) { super(configurationType); } public RunConfiguration createTemplateConfiguration(Project project) { - myModel.addConfiguration(PythonTestConfigurationsModel.PYTHONS_UNITTEST_NAME, false); return new PythonUnitTestRunConfiguration(new RunConfigurationModule(project), this, ""); } } diff --git a/python/src/com/jetbrains/python/testing/TestRunnerConfigurable.java b/python/src/com/jetbrains/python/testing/TestRunnerConfigurable.java index f5b71b11e91e..2b658706a35a 100644 --- a/python/src/com/jetbrains/python/testing/TestRunnerConfigurable.java +++ b/python/src/com/jetbrains/python/testing/TestRunnerConfigurable.java @@ -3,6 +3,7 @@ package com.jetbrains.python.testing; import com.intellij.openapi.options.Configurable; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.options.NonDefaultProjectConfigurable; +import com.intellij.openapi.project.Project; import com.jetbrains.python.testing.nosetest.PythonNoseTestConfigurationProducer; import com.jetbrains.python.testing.pytest.PyTestConfigurationProducer; import org.jetbrains.annotations.Nls; @@ -10,6 +11,7 @@ import org.jetbrains.annotations.Nls; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.util.List; /** * User: catherine @@ -18,7 +20,12 @@ public class TestRunnerConfigurable implements Configurable, NonDefaultProjectCo private JPanel myMainPanel; private JComboBox myComboBox; private PythonTestConfigurationsModel myModel; + private Project myProject; + public TestRunnerConfigurable(Project project) { + myProject = project; + setActiveProducer(TestRunnerService.getInstance(myProject).getProjectConfiguration()); + } @Nls @Override public String getDisplayName() { @@ -37,7 +44,9 @@ public class TestRunnerConfigurable implements Configurable, NonDefaultProjectCo @Override public JComponent createComponent() { - myModel = PythonTestConfigurationsModel.getInstance(); + List configurations = TestRunnerService.getInstance(myProject).getConfigurations(); + myModel = new PythonTestConfigurationsModel(configurations, TestRunnerService.getInstance(myProject).getProjectConfiguration(), + myProject); updateConfigurations(); return myMainPanel; } @@ -49,25 +58,29 @@ public class TestRunnerConfigurable implements Configurable, NonDefaultProjectCo public void actionPerformed(ActionEvent actionEvent) { JComboBox cb = (JComboBox)actionEvent.getSource(); String selectedItem = (String)cb.getSelectedItem(); - if (selectedItem.equals(PythonTestConfigurationsModel.PYTHONS_UNITTEST_NAME)) { - PythonUnitTestConfigurationProducer.getInstance(PythonUnitTestConfigurationProducer.class).setActive(true); - PythonNoseTestConfigurationProducer.getInstance(PythonNoseTestConfigurationProducer.class).setActive(false); - PyTestConfigurationProducer.getInstance(PyTestConfigurationProducer.class).setActive(false); - } - else if (selectedItem.equals(PythonTestConfigurationsModel.PYTHONS_NOSETEST_NAME)) { - PythonNoseTestConfigurationProducer.getInstance(PythonNoseTestConfigurationProducer.class).setActive(true); - PythonUnitTestConfigurationProducer.getInstance(PythonUnitTestConfigurationProducer.class).setActive(false); - PyTestConfigurationProducer.getInstance(PyTestConfigurationProducer.class).setActive(false); - } - else if (selectedItem.equals(PythonTestConfigurationsModel.PY_TEST_NAME)) { - PyTestConfigurationProducer.getInstance(PyTestConfigurationProducer.class).setActive(true); - PythonNoseTestConfigurationProducer.getInstance(PythonNoseTestConfigurationProducer.class).setActive(false); - PythonUnitTestConfigurationProducer.getInstance(PythonUnitTestConfigurationProducer.class).setActive(false); - } + setActiveProducer(selectedItem); } }); } + private void setActiveProducer(String name) { + if (name.equals(PythonTestConfigurationsModel.PYTHONS_UNITTEST_NAME)) { + PythonUnitTestConfigurationProducer.getInstance(PythonUnitTestConfigurationProducer.class).setActive(true); + PythonNoseTestConfigurationProducer.getInstance(PythonNoseTestConfigurationProducer.class).setActive(false); + PyTestConfigurationProducer.getInstance(PyTestConfigurationProducer.class).setActive(false); + } + else if (name.equals(PythonTestConfigurationsModel.PYTHONS_NOSETEST_NAME)) { + PythonNoseTestConfigurationProducer.getInstance(PythonNoseTestConfigurationProducer.class).setActive(true); + PythonUnitTestConfigurationProducer.getInstance(PythonUnitTestConfigurationProducer.class).setActive(false); + PyTestConfigurationProducer.getInstance(PyTestConfigurationProducer.class).setActive(false); + } + else if (name.equals(PythonTestConfigurationsModel.PY_TEST_NAME)) { + PyTestConfigurationProducer.getInstance(PyTestConfigurationProducer.class).setActive(true); + PythonNoseTestConfigurationProducer.getInstance(PythonNoseTestConfigurationProducer.class).setActive(false); + PythonUnitTestConfigurationProducer.getInstance(PythonUnitTestConfigurationProducer.class).setActive(false); + } + } + @Override public boolean isModified() { if (myComboBox.getSelectedItem() != myModel.getProjectConfiguration()) { diff --git a/python/src/com/jetbrains/python/testing/TestRunnerService.java b/python/src/com/jetbrains/python/testing/TestRunnerService.java new file mode 100644 index 000000000000..23a0fbd2aba5 --- /dev/null +++ b/python/src/com/jetbrains/python/testing/TestRunnerService.java @@ -0,0 +1,56 @@ +package com.jetbrains.python.testing; + +import com.intellij.openapi.components.*; +import com.intellij.openapi.project.Project; +import com.intellij.util.xmlb.XmlSerializerUtil; + +import java.util.ArrayList; +import java.util.List; + +/** + * User: catherine + */ +@State(name = "TestRunnerService", + storages = { + @Storage(id = "default", file = "$PROJECT_FILE$"), + @Storage(id = "dir", file = "$PROJECT_CONFIG_DIR$/testrunner.xml", scheme = StorageScheme.DIRECTORY_BASED) + } +) +public class TestRunnerService implements PersistentStateComponent { + private List myConfigurations = new ArrayList(); + public String PROJECT_CONFIGURATION = PythonTestConfigurationsModel.PYTHONS_UNITTEST_NAME; + + public TestRunnerService() { + myConfigurations.add(PythonTestConfigurationsModel.PYTHONS_UNITTEST_NAME); + myConfigurations.add(PythonTestConfigurationsModel.PYTHONS_NOSETEST_NAME); + myConfigurations.add(PythonTestConfigurationsModel.PY_TEST_NAME); + } + + public List getConfigurations() { + return myConfigurations; + } + public void registerConfiguration(final String newConfiguration) { + myConfigurations.add(newConfiguration); + } + @Override + public TestRunnerService getState() { + return this; + } + + @Override + public void loadState(TestRunnerService state) { + XmlSerializerUtil.copyBean(state, this); + } + + public void setProjectConfiguration(String projectConfiguration) { + PROJECT_CONFIGURATION = projectConfiguration; + } + + public static TestRunnerService getInstance(Project project) { + return ServiceManager.getService(project, TestRunnerService.class); + } + public String getProjectConfiguration() { + System.out.println("conf " + PROJECT_CONFIGURATION); + return PROJECT_CONFIGURATION; + } +} diff --git a/python/src/com/jetbrains/python/testing/nosetest/PythonNoseTestConfigurationProducer.java b/python/src/com/jetbrains/python/testing/nosetest/PythonNoseTestConfigurationProducer.java index 9872fcc34369..02bfb0811f6d 100644 --- a/python/src/com/jetbrains/python/testing/nosetest/PythonNoseTestConfigurationProducer.java +++ b/python/src/com/jetbrains/python/testing/nosetest/PythonNoseTestConfigurationProducer.java @@ -12,7 +12,6 @@ import com.intellij.execution.configurations.ConfigurationTypeUtil; import com.intellij.execution.junit.RuntimeConfigurationProducer; import com.intellij.facet.Facet; import com.intellij.facet.FacetManager; -import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleUtil; import com.intellij.openapi.vfs.VirtualFile; @@ -22,7 +21,10 @@ import com.intellij.psi.util.PsiTreeUtil; import com.jetbrains.python.PythonModuleTypeBase; import com.jetbrains.python.facet.PythonFacetSettings; import com.jetbrains.python.psi.*; -import com.jetbrains.python.testing.*; +import com.jetbrains.python.testing.PythonTestConfigurationsModel; +import com.jetbrains.python.testing.PythonUnitTestRunnableScriptFilter; +import com.jetbrains.python.testing.PythonUnitTestUtil; +import com.jetbrains.python.testing.TestRunnerService; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -46,34 +48,30 @@ public class PythonNoseTestConfigurationProducer extends RuntimeConfigurationPro if (!isActive) return null; RunnerAndConfigurationSettings settings; - Module module = location.getModule(); + /*Module module = location.getModule(); + if (module != null) { for (RunnableUnitTestFilter f : Extensions.getExtensions(RunnableUnitTestFilter.EP_NAME)) { if (f.isRunnableUnitTest(location.getPsiElement().getContainingFile(), module)) { return null; } } - } - + }*/ if (PythonUnitTestRunnableScriptFilter.isIfNameMain(location)) { return null; } - settings = createConfigurationFromFolder(location); if (settings != null) return settings; - final PyElement pyElement = PsiTreeUtil.getParentOfType(location.getPsiElement(), PyElement.class); if (pyElement != null) { settings = createConfigurationFromFunction(location, pyElement); if (settings != null) return settings; - settings = createConfigurationFromClass(location, pyElement); if (settings != null) return settings; } settings = createConfigurationFromFile(location, location.getPsiElement()); if (settings != null) return settings; - return null; } @@ -225,4 +223,5 @@ public class PythonNoseTestConfigurationProducer extends RuntimeConfigurationPro public void setActive(boolean active) { isActive = active; } + } \ No newline at end of file diff --git a/python/src/com/jetbrains/python/testing/nosetest/PythonNoseTestRunConfigurationType.java b/python/src/com/jetbrains/python/testing/nosetest/PythonNoseTestRunConfigurationType.java index 241c23e63af5..20d2b3b584f5 100644 --- a/python/src/com/jetbrains/python/testing/nosetest/PythonNoseTestRunConfigurationType.java +++ b/python/src/com/jetbrains/python/testing/nosetest/PythonNoseTestRunConfigurationType.java @@ -4,7 +4,6 @@ import com.intellij.execution.configurations.*; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.IconLoader; import com.jetbrains.python.PyBundle; -import com.jetbrains.python.testing.PythonTestConfigurationsModel; import javax.swing.*; @@ -27,13 +26,11 @@ public class PythonNoseTestRunConfigurationType extends ConfigurationTypeBase { private final static Icon ICON = IconLoader.getIcon("/com/jetbrains/python/icons/python.png"); private static class PythonNoseTestConfigurationFactory extends ConfigurationFactory { - final private PythonTestConfigurationsModel myModel = PythonTestConfigurationsModel.getInstance(); protected PythonNoseTestConfigurationFactory(ConfigurationType configurationType) { super(configurationType); } public RunConfiguration createTemplateConfiguration(Project project) { - myModel.addConfiguration(PythonTestConfigurationsModel.PYTHONS_NOSETEST_NAME, false); return new PythonNoseTestRunConfiguration(new RunConfigurationModule(project), this, ""); } } diff --git a/python/src/com/jetbrains/python/testing/pytest/PyTestRunConfigurationType.java b/python/src/com/jetbrains/python/testing/pytest/PyTestRunConfigurationType.java index a8407f62ff9f..e176f7baf130 100644 --- a/python/src/com/jetbrains/python/testing/pytest/PyTestRunConfigurationType.java +++ b/python/src/com/jetbrains/python/testing/pytest/PyTestRunConfigurationType.java @@ -7,7 +7,6 @@ import com.intellij.execution.configurations.RunConfigurationModule; import com.intellij.openapi.project.Project; import com.jetbrains.python.PyBundle; import com.jetbrains.python.PythonFileType; -import com.jetbrains.python.testing.PythonTestConfigurationsModel; import org.jetbrains.annotations.NotNull; import javax.swing.*; @@ -41,13 +40,11 @@ public class PyTestRunConfigurationType implements ConfigurationType { private static class PyTestRunConfigurationFactory extends ConfigurationFactory { - final private PythonTestConfigurationsModel myModel = PythonTestConfigurationsModel.getInstance(); protected PyTestRunConfigurationFactory(ConfigurationType type) { super(type); } public RunConfiguration createTemplateConfiguration(Project project) { - myModel.addConfiguration(PythonTestConfigurationsModel.PY_TEST_NAME, false); return new PyTestRunConfiguration("", new RunConfigurationModule(project), this); } } From 6bf3bc0a44c85c3174904f73381cba53b861b587 Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Thu, 16 Dec 2010 14:48:15 +0300 Subject: [PATCH 2/3] fixed PY-2512 "Convert dict literal to dict constructor" breaks code --- .../PyDictLiteralFormToConstructorIntention.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/python/src/com/jetbrains/python/codeInsight/intentions/PyDictLiteralFormToConstructorIntention.java b/python/src/com/jetbrains/python/codeInsight/intentions/PyDictLiteralFormToConstructorIntention.java index 2937526ae471..b34b8aa87fb5 100644 --- a/python/src/com/jetbrains/python/codeInsight/intentions/PyDictLiteralFormToConstructorIntention.java +++ b/python/src/com/jetbrains/python/codeInsight/intentions/PyDictLiteralFormToConstructorIntention.java @@ -37,12 +37,22 @@ public class PyDictLiteralFormToConstructorIntention extends BaseIntentionAction if (dictExpression != null) { PyKeyValueExpression[] elements = dictExpression.getElements(); + boolean canConvert = true; if (elements.length != 0) { for (PyKeyValueExpression element : elements) { - if (! (element.getKey() instanceof PyStringLiteralExpression)) return false; + PyExpression key = element.getKey(); + if (! (key instanceof PyStringLiteralExpression)) canConvert = false; + String str = ((PyStringLiteralExpression)key).getStringValue(); + if(Character.isDigit(str.charAt(0))) canConvert = false; + try { + Integer.parseInt(str) ; + canConvert = false; + } catch (NumberFormatException e) { + // pass + } } } - return true; + if (canConvert) return true; } return false; } From 0d69b1e3cd8025b5a8f99dbfb4e61da7d1541ac5 Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Thu, 16 Dec 2010 15:03:04 +0300 Subject: [PATCH 3/3] fixed saving test run configuration --- .../PythonUnitTestConfigurationProducer.java | 9 ++---- .../testing/TestRunnerConfigurable.java | 30 ------------------- .../python/testing/TestRunnerService.java | 1 - .../PythonNoseTestConfigurationProducer.java | 10 ++----- .../pytest/PyTestConfigurationProducer.java | 10 +++---- 5 files changed, 11 insertions(+), 49 deletions(-) diff --git a/python/src/com/jetbrains/python/testing/PythonUnitTestConfigurationProducer.java b/python/src/com/jetbrains/python/testing/PythonUnitTestConfigurationProducer.java index f8d207ac0dd4..53e0ac215fea 100644 --- a/python/src/com/jetbrains/python/testing/PythonUnitTestConfigurationProducer.java +++ b/python/src/com/jetbrains/python/testing/PythonUnitTestConfigurationProducer.java @@ -28,7 +28,6 @@ import java.util.List; public class PythonUnitTestConfigurationProducer extends RuntimeConfigurationProducer { private PsiElement myPsiElement; - private boolean isActive = true; public PythonUnitTestConfigurationProducer() { super(ConfigurationTypeUtil.findConfigurationType(PythonUnitTestConfigurationType.class)); @@ -41,9 +40,10 @@ public class PythonUnitTestConfigurationProducer extends RuntimeConfigurationPro @Override protected RunnerAndConfigurationSettings createConfigurationByElement(Location location, ConfigurationContext context) { - if (!isActive) return null; + PsiElement element = location.getPsiElement(); + if (! (TestRunnerService.getInstance(element.getProject()).getProjectConfiguration().equals( + PythonTestConfigurationsModel.PYTHONS_UNITTEST_NAME))) return null; RunnerAndConfigurationSettings settings; - /*Module module = location.getModule(); if (module != null) { @@ -215,9 +215,6 @@ public class PythonUnitTestConfigurationProducer extends RuntimeConfigurationPro } return null; } - public void setActive(boolean active) { - isActive = active; - } public int compareTo(Object o) { return PREFERED; diff --git a/python/src/com/jetbrains/python/testing/TestRunnerConfigurable.java b/python/src/com/jetbrains/python/testing/TestRunnerConfigurable.java index 2b658706a35a..4887637350e4 100644 --- a/python/src/com/jetbrains/python/testing/TestRunnerConfigurable.java +++ b/python/src/com/jetbrains/python/testing/TestRunnerConfigurable.java @@ -4,13 +4,9 @@ import com.intellij.openapi.options.Configurable; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.options.NonDefaultProjectConfigurable; import com.intellij.openapi.project.Project; -import com.jetbrains.python.testing.nosetest.PythonNoseTestConfigurationProducer; -import com.jetbrains.python.testing.pytest.PyTestConfigurationProducer; import org.jetbrains.annotations.Nls; import javax.swing.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.util.List; /** @@ -24,7 +20,6 @@ public class TestRunnerConfigurable implements Configurable, NonDefaultProjectCo public TestRunnerConfigurable(Project project) { myProject = project; - setActiveProducer(TestRunnerService.getInstance(myProject).getProjectConfiguration()); } @Nls @Override @@ -53,32 +48,7 @@ public class TestRunnerConfigurable implements Configurable, NonDefaultProjectCo private void updateConfigurations() { myComboBox.setModel(myModel); - myComboBox.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent actionEvent) { - JComboBox cb = (JComboBox)actionEvent.getSource(); - String selectedItem = (String)cb.getSelectedItem(); - setActiveProducer(selectedItem); - } - }); - } - private void setActiveProducer(String name) { - if (name.equals(PythonTestConfigurationsModel.PYTHONS_UNITTEST_NAME)) { - PythonUnitTestConfigurationProducer.getInstance(PythonUnitTestConfigurationProducer.class).setActive(true); - PythonNoseTestConfigurationProducer.getInstance(PythonNoseTestConfigurationProducer.class).setActive(false); - PyTestConfigurationProducer.getInstance(PyTestConfigurationProducer.class).setActive(false); - } - else if (name.equals(PythonTestConfigurationsModel.PYTHONS_NOSETEST_NAME)) { - PythonNoseTestConfigurationProducer.getInstance(PythonNoseTestConfigurationProducer.class).setActive(true); - PythonUnitTestConfigurationProducer.getInstance(PythonUnitTestConfigurationProducer.class).setActive(false); - PyTestConfigurationProducer.getInstance(PyTestConfigurationProducer.class).setActive(false); - } - else if (name.equals(PythonTestConfigurationsModel.PY_TEST_NAME)) { - PyTestConfigurationProducer.getInstance(PyTestConfigurationProducer.class).setActive(true); - PythonNoseTestConfigurationProducer.getInstance(PythonNoseTestConfigurationProducer.class).setActive(false); - PythonUnitTestConfigurationProducer.getInstance(PythonUnitTestConfigurationProducer.class).setActive(false); - } } @Override diff --git a/python/src/com/jetbrains/python/testing/TestRunnerService.java b/python/src/com/jetbrains/python/testing/TestRunnerService.java index 23a0fbd2aba5..aaca9cc3d93d 100644 --- a/python/src/com/jetbrains/python/testing/TestRunnerService.java +++ b/python/src/com/jetbrains/python/testing/TestRunnerService.java @@ -50,7 +50,6 @@ public class TestRunnerService implements PersistentStateComponent