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, |