135 self.fileHistory = [] |
135 self.fileHistory = [] |
136 self.testNameHistory = [] |
136 self.testNameHistory = [] |
137 self.running = False |
137 self.running = False |
138 self.savedModulelist = None |
138 self.savedModulelist = None |
139 self.savedSysPath = sys.path |
139 self.savedSysPath = sys.path |
|
140 self.savedCwd = os.getcwd() |
140 if prog: |
141 if prog: |
141 self.insertProg(prog) |
142 self.insertProg(prog) |
142 |
143 |
143 self.rxPatterns = [ |
144 self.rxPatterns = [ |
144 self.tr("^Failure: "), |
145 self.tr("^Failure: "), |
315 Private slot handling state changes of the 'discover' checkbox. |
316 Private slot handling state changes of the 'discover' checkbox. |
316 |
317 |
317 @param checked state of the checkbox |
318 @param checked state of the checkbox |
318 @type bool |
319 @type bool |
319 """ |
320 """ |
320 self.startFailedButton.setEnabled( |
321 # TODO: enable this code once the discover button is available |
321 bool(self.__failedTests) and not checked) |
322 # self.discoverButton.setEnabled(checked) |
322 |
323 |
323 def on_buttonBox_clicked(self, button): |
324 def on_buttonBox_clicked(self, button): |
324 """ |
325 """ |
325 Private slot called by a button of the button box clicked. |
326 Private slot called by a button of the button box clicked. |
326 |
327 |
436 self.__venvManager.getVirtualenvVariant(venvName) |
436 self.__venvManager.getVirtualenvVariant(venvName) |
437 if not clientType: |
437 if not clientType: |
438 # assume Python 3 |
438 # assume Python 3 |
439 clientType = "Python3" |
439 clientType = "Python3" |
440 sysPath = [] |
440 sysPath = [] |
441 if not discover and failedOnly and self.__failedTests: |
441 if failedOnly and self.__failedTests: |
442 failed = self.__failedTests[:] |
442 failed = self.__failedTests[:] |
|
443 if discover: |
|
444 workdir = discoveryStart |
|
445 discover = False |
443 else: |
446 else: |
444 failed = [] |
447 failed = [] |
445 self.__failedTests = [] |
448 self.__failedTests = [] |
446 self.__dbs.remoteUTPrepare( |
449 self.__dbs.remoteUTPrepare( |
447 testFileName, self.testName, testName, failed, |
450 testFileName, self.testName, testName, failed, |
450 forProject=self.__forProject, workdir=workdir, |
453 forProject=self.__forProject, workdir=workdir, |
451 venvName=venvName, syspath=sysPath, |
454 venvName=venvName, syspath=sysPath, |
452 discover=discover, discoveryStart=discoveryStart) |
455 discover=discover, discoveryStart=discoveryStart) |
453 else: |
456 else: |
454 # we are running as an application |
457 # we are running as an application |
|
458 if discover and not discoveryStart: |
|
459 E5MessageBox.critical( |
|
460 self, |
|
461 self.tr("Unittest"), |
|
462 self.tr("You must enter a start directory for" |
|
463 " auto-discovery.")) |
|
464 return |
|
465 |
455 if testFileName: |
466 if testFileName: |
456 sys.path = [os.path.dirname(os.path.abspath(testFileName))] + \ |
467 sys.path = [os.path.dirname(os.path.abspath(testFileName))] + \ |
457 self.savedSysPath |
468 self.savedSysPath |
458 |
469 |
459 # clean up list of imported modules to force a reimport upon |
470 # clean up list of imported modules to force a reimport upon |
463 if modname not in self.savedModulelist: |
474 if modname not in self.savedModulelist: |
464 # delete it |
475 # delete it |
465 del(sys.modules[modname]) |
476 del(sys.modules[modname]) |
466 self.savedModulelist = sys.modules.copy() |
477 self.savedModulelist = sys.modules.copy() |
467 |
478 |
|
479 os.chdir(self.savedCwd) |
|
480 |
468 # now try to generate the testsuite |
481 # now try to generate the testsuite |
469 try: |
482 try: |
|
483 if failedOnly and self.__failedTests: |
|
484 failed = self.__failedTests[:] |
|
485 if discover: |
|
486 os.chdir(discoveryStart) |
|
487 discover = False |
|
488 else: |
|
489 failed = [] |
470 if discover: |
490 if discover: |
471 if not discoveryStart: |
|
472 E5MessageBox.critical( |
|
473 self, |
|
474 self.tr("Unittest"), |
|
475 self.tr("You must enter a start directory for" |
|
476 " auto-discovery.")) |
|
477 return |
|
478 |
|
479 test = unittest.defaultTestLoader.discover(discoveryStart) |
491 test = unittest.defaultTestLoader.discover(discoveryStart) |
480 # testsList = self.__assembleTestCasesList(test) |
492 # testsList = self.__assembleTestCasesList(test) |
481 else: |
493 else: |
482 if testFileName: |
494 if testFileName: |
483 module = __import__(self.testName) |
495 module = __import__(self.testName) |
657 """ |
669 """ |
658 self.stopTime = time.time() |
670 self.stopTime = time.time() |
659 self.timeTaken = float(self.stopTime - self.startTime) |
671 self.timeTaken = float(self.stopTime - self.startTime) |
660 self.running = False |
672 self.running = False |
661 |
673 |
662 failedAvailable = bool(self.__failedTests) and \ |
674 failedAvailable = bool(self.__failedTests) |
663 not self.discoverCheckBox.isChecked() |
|
664 self.startButton.setEnabled(True) |
675 self.startButton.setEnabled(True) |
665 self.startFailedButton.setEnabled(failedAvailable) |
676 self.startFailedButton.setEnabled(failedAvailable) |
666 self.stopButton.setEnabled(False) |
677 self.stopButton.setEnabled(False) |
667 if failedAvailable: |
678 if failedAvailable: |
668 self.startFailedButton.setDefault(True) |
679 self.startFailedButton.setDefault(True) |