src/eric7/Testing/TestingWidget.py

branch
eric7
changeset 9311
8e588f403fd9
parent 9221
bf71ee032bb4
child 9313
6bac6775abb2
equal deleted inserted replaced
9310:8ab45a4a6d96 9311:8e588f403fd9
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()
684 688
685 @pyqtSlot() 689 @pyqtSlot()
686 def __updateCoverage(self): 690 def __updateCoverage(self):
687 """ 691 """
688 Private slot to update the state of the coverage checkbox depending on 692 Private slot to update the state of the coverage checkbox depending on
699 hasCoverage = executor.hasCoverage(interpreter) 703 hasCoverage = executor.hasCoverage(interpreter)
700 704
701 self.coverageCheckBox.setEnabled(hasCoverage) 705 self.coverageCheckBox.setEnabled(hasCoverage)
702 if not hasCoverage: 706 if not hasCoverage:
703 self.coverageCheckBox.setChecked(False) 707 self.coverageCheckBox.setChecked(False)
708
709 @pyqtSlot()
710 def __updateMarkerSupport(self):
711 """
712 Private slot to update the state of the marker related widgets depending on
713 the selected framework's capabilities.
714 """
715 supportsMarkers = False
716
717 venvName = self.venvComboBox.currentText()
718 if venvName:
719 framework = self.frameworkComboBox.currentText()
720 if framework:
721 interpreter = self.__venvManager.getVirtualenvInterpreter(venvName)
722 executor = self.__frameworkRegistry.createExecutor(framework, self)
723 supportsMarkers = executor.supportsMarkers(interpreter)
724
725 # 1. marker expression line edit
726 self.markerExpressionEdit.setEnabled(supportsMarkers)
727 if not supportsMarkers:
728 self.markerExpressionEdit.clear()
729
730 # 2. show markers button
731 self.showMarkersButton.setEnabled(supportsMarkers)
732 if self.__markersWindow is not None:
733 self.__markersWindow.close()
734
735 @pyqtSlot()
736 def on_showMarkersButton_clicked(self):
737 """
738 Private slot to show a window containing the list of defined markers.
739 """
740 venvName = self.venvComboBox.currentText()
741 if venvName:
742 framework = self.frameworkComboBox.currentText()
743 if framework:
744 if self.discoverCheckBox.isChecked():
745 workdir = self.discoveryPicker.currentText()
746 elif self.testsuitePicker.currentText():
747 workdir = os.path.dirname(self.testsuitePicker.currentText())
748 else:
749 workdir = ""
750
751 interpreter = self.__venvManager.getVirtualenvInterpreter(venvName)
752 executor = self.__frameworkRegistry.createExecutor(framework, self)
753 markers = executor.getMarkers(interpreter, workdir)
754
755 if self.__markersWindow is None:
756 from .MarkersWindow import MarkersWindow
757
758 self.__markersWindow = MarkersWindow()
759 self.__markersWindow.showMarkers(markers)
704 760
705 @pyqtSlot() 761 @pyqtSlot()
706 def on_versionsButton_clicked(self): 762 def on_versionsButton_clicked(self):
707 """ 763 """
708 Private slot to show the versions of available plugins. 764 Private slot to show the versions of available plugins.
789 interpreter=interpreter, 845 interpreter=interpreter,
790 discover=discover, 846 discover=discover,
791 discoveryStart=discoveryStart, 847 discoveryStart=discoveryStart,
792 testFilename=testFileName, 848 testFilename=testFileName,
793 testName=testName, 849 testName=testName,
850 testMarkerExpression=self.markerExpressionEdit.text(),
794 failFast=self.failfastCheckBox.isChecked(), 851 failFast=self.failfastCheckBox.isChecked(),
795 failedOnly=failedOnly, 852 failedOnly=failedOnly,
796 collectCoverage=self.coverageCheckBox.isChecked(), 853 collectCoverage=self.coverageCheckBox.isChecked(),
797 eraseCoverage=self.coverageEraseCheckBox.isChecked(), 854 eraseCoverage=self.coverageEraseCheckBox.isChecked(),
798 coverageFile=coverageFile, 855 coverageFile=coverageFile,

eric ide

mercurial