src/eric7/Testing/TestingWidget.py

branch
eric7-maintenance
changeset 9371
1da8bc75946f
parent 9264
18a7312cfdb3
parent 9313
6bac6775abb2
child 9442
906485dcd210
equal deleted inserted replaced
9306:90dc02c8a384 9371:1da8bc75946f
80 self.__resultsTree.goto.connect(self.__showSource) 80 self.__resultsTree.goto.connect(self.__showSource)
81 self.resultsGroupBox.layout().addWidget(self.__resultsTree) 81 self.resultsGroupBox.layout().addWidget(self.__resultsTree)
82 82
83 self.versionsButton.setIcon(UI.PixmapCache.getIcon("info")) 83 self.versionsButton.setIcon(UI.PixmapCache.getIcon("info"))
84 self.clearHistoriesButton.setIcon(UI.PixmapCache.getIcon("clearPrivateData")) 84 self.clearHistoriesButton.setIcon(UI.PixmapCache.getIcon("clearPrivateData"))
85 self.showMarkersButton.setIcon(UI.PixmapCache.getIcon("select"))
85 86
86 self.testsuitePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE) 87 self.testsuitePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
87 self.testsuitePicker.setInsertPolicy(QComboBox.InsertPolicy.InsertAtTop) 88 self.testsuitePicker.setInsertPolicy(QComboBox.InsertPolicy.InsertAtTop)
88 self.testsuitePicker.setSizeAdjustPolicy( 89 self.testsuitePicker.setSizeAdjustPolicy(
89 QComboBox.SizeAdjustPolicy.AdjustToMinimumContentsLengthWithIcon 90 QComboBox.SizeAdjustPolicy.AdjustToMinimumContentsLengthWithIcon
202 self.__coverageDialog = None 203 self.__coverageDialog = None
203 204
204 self.__editors = [] 205 self.__editors = []
205 self.__testExecutor = None 206 self.__testExecutor = None
206 self.__recentLog = "" 207 self.__recentLog = ""
208
209 self.__markersWindow = None
207 210
208 # connect some signals 211 # connect some signals
209 self.discoveryPicker.editTextChanged.connect(self.__resetResults) 212 self.discoveryPicker.editTextChanged.connect(self.__resetResults)
210 self.testsuitePicker.editTextChanged.connect(self.__resetResults) 213 self.testsuitePicker.editTextChanged.connect(self.__resetResults)
211 self.testComboBox.editTextChanged.connect(self.__resetResults) 214 self.testComboBox.editTextChanged.connect(self.__resetResults)
679 @param index index of the selected framework 682 @param index index of the selected framework
680 @type int 683 @type int
681 """ 684 """
682 self.__resetResults() 685 self.__resetResults()
683 self.__updateCoverage() 686 self.__updateCoverage()
687 self.__updateMarkerSupport()
688 self.__updatePatternSupport()
684 689
685 @pyqtSlot() 690 @pyqtSlot()
686 def __updateCoverage(self): 691 def __updateCoverage(self):
687 """ 692 """
688 Private slot to update the state of the coverage checkbox depending on 693 Private slot to update the state of the coverage checkbox depending on
699 hasCoverage = executor.hasCoverage(interpreter) 704 hasCoverage = executor.hasCoverage(interpreter)
700 705
701 self.coverageCheckBox.setEnabled(hasCoverage) 706 self.coverageCheckBox.setEnabled(hasCoverage)
702 if not hasCoverage: 707 if not hasCoverage:
703 self.coverageCheckBox.setChecked(False) 708 self.coverageCheckBox.setChecked(False)
709
710 @pyqtSlot()
711 def __updateMarkerSupport(self):
712 """
713 Private slot to update the state of the marker related widgets depending on
714 the selected framework's capabilities.
715 """
716 supportsMarkers = False
717
718 venvName = self.venvComboBox.currentText()
719 if venvName:
720 framework = self.frameworkComboBox.currentText()
721 if framework:
722 interpreter = self.__venvManager.getVirtualenvInterpreter(venvName)
723 executor = self.__frameworkRegistry.createExecutor(framework, self)
724 supportsMarkers = executor.supportsMarkers(interpreter)
725
726 # 1. marker expression line edit
727 self.markerExpressionEdit.setEnabled(supportsMarkers)
728 if not supportsMarkers:
729 self.markerExpressionEdit.clear()
730
731 # 2. show markers button
732 self.showMarkersButton.setEnabled(supportsMarkers)
733 if self.__markersWindow is not None:
734 self.__markersWindow.close()
735
736 @pyqtSlot()
737 def on_showMarkersButton_clicked(self):
738 """
739 Private slot to show a window containing the list of defined markers.
740 """
741 venvName = self.venvComboBox.currentText()
742 if venvName:
743 framework = self.frameworkComboBox.currentText()
744 if framework:
745 if self.discoverCheckBox.isChecked():
746 workdir = self.discoveryPicker.currentText()
747 elif self.testsuitePicker.currentText():
748 workdir = os.path.dirname(self.testsuitePicker.currentText())
749 else:
750 workdir = ""
751
752 interpreter = self.__venvManager.getVirtualenvInterpreter(venvName)
753 executor = self.__frameworkRegistry.createExecutor(framework, self)
754 markers = executor.getMarkers(interpreter, workdir)
755
756 if self.__markersWindow is None:
757 from .MarkersWindow import MarkersWindow
758
759 self.__markersWindow = MarkersWindow()
760 self.__markersWindow.showMarkers(markers)
761
762 @pyqtSlot()
763 def __updatePatternSupport(self):
764 """
765 Private slot to update the state of the test name pattern line edit depending on
766 the selected framework's capabilities.
767 """
768 supportsPatterns = False
769
770 venvName = self.venvComboBox.currentText()
771 if venvName:
772 framework = self.frameworkComboBox.currentText()
773 if framework:
774 interpreter = self.__venvManager.getVirtualenvInterpreter(venvName)
775 executor = self.__frameworkRegistry.createExecutor(framework, self)
776 supportsPatterns = executor.supportsPatterns(interpreter)
777
778 self.testNamePatternEdit.setEnabled(supportsPatterns)
779 self.testNamePatternEdit.clear()
704 780
705 @pyqtSlot() 781 @pyqtSlot()
706 def on_versionsButton_clicked(self): 782 def on_versionsButton_clicked(self):
707 """ 783 """
708 Private slot to show the versions of available plugins. 784 Private slot to show the versions of available plugins.
789 interpreter=interpreter, 865 interpreter=interpreter,
790 discover=discover, 866 discover=discover,
791 discoveryStart=discoveryStart, 867 discoveryStart=discoveryStart,
792 testFilename=testFileName, 868 testFilename=testFileName,
793 testName=testName, 869 testName=testName,
870 testNamePattern=self.testNamePatternEdit.text(),
871 testMarkerExpression=self.markerExpressionEdit.text(),
794 failFast=self.failfastCheckBox.isChecked(), 872 failFast=self.failfastCheckBox.isChecked(),
795 failedOnly=failedOnly, 873 failedOnly=failedOnly,
796 collectCoverage=self.coverageCheckBox.isChecked(), 874 collectCoverage=self.coverageCheckBox.isChecked(),
797 eraseCoverage=self.coverageEraseCheckBox.isChecked(), 875 eraseCoverage=self.coverageEraseCheckBox.isChecked(),
798 coverageFile=coverageFile, 876 coverageFile=coverageFile,

eric ide

mercurial