--- a/PyUnit/UnittestDialog.py Sun Mar 24 16:11:19 2019 +0100 +++ b/PyUnit/UnittestDialog.py Sun Mar 24 16:37:44 2019 +0100 @@ -137,6 +137,7 @@ self.running = False self.savedModulelist = None self.savedSysPath = sys.path + self.savedCwd = os.getcwd() if prog: self.insertProg(prog) @@ -317,8 +318,8 @@ @param checked state of the checkbox @type bool """ - self.startFailedButton.setEnabled( - bool(self.__failedTests) and not checked) + # TODO: enable this code once the discover button is available +# self.discoverButton.setEnabled(checked) def on_buttonBox_clicked(self, button): """ @@ -340,7 +341,6 @@ @keyparam failedOnly flag indicating to run only failed tests (boolean) """ - # TODO: run only failed test ignoring test parameters when failedOnly is set if self.running: return @@ -438,8 +438,11 @@ # assume Python 3 clientType = "Python3" sysPath = [] - if not discover and failedOnly and self.__failedTests: + if failedOnly and self.__failedTests: failed = self.__failedTests[:] + if discover: + workdir = discoveryStart + discover = False else: failed = [] self.__failedTests = [] @@ -452,6 +455,14 @@ discover=discover, discoveryStart=discoveryStart) else: # we are running as an application + if discover and not discoveryStart: + E5MessageBox.critical( + self, + self.tr("Unittest"), + self.tr("You must enter a start directory for" + " auto-discovery.")) + return + if testFileName: sys.path = [os.path.dirname(os.path.abspath(testFileName))] + \ self.savedSysPath @@ -465,17 +476,18 @@ del(sys.modules[modname]) self.savedModulelist = sys.modules.copy() + os.chdir(self.savedCwd) + # now try to generate the testsuite try: + if failedOnly and self.__failedTests: + failed = self.__failedTests[:] + if discover: + os.chdir(discoveryStart) + discover = False + else: + failed = [] if discover: - if not discoveryStart: - E5MessageBox.critical( - self, - self.tr("Unittest"), - self.tr("You must enter a start directory for" - " auto-discovery.")) - return - test = unittest.defaultTestLoader.discover(discoveryStart) # testsList = self.__assembleTestCasesList(test) else: @@ -659,8 +671,7 @@ self.timeTaken = float(self.stopTime - self.startTime) self.running = False - failedAvailable = bool(self.__failedTests) and \ - not self.discoverCheckBox.isChecked() + failedAvailable = bool(self.__failedTests) self.startButton.setEnabled(True) self.startFailedButton.setEnabled(failedAvailable) self.stopButton.setEnabled(False)