eric7/UI/UserInterface.py

branch
unittest
changeset 9065
39405e6eba20
parent 9064
339bb8c8007d
child 9066
a219ade50f7c
--- a/eric7/UI/UserInterface.py	Sun May 15 18:08:31 2022 +0200
+++ b/eric7/UI/UserInterface.py	Mon May 16 17:22:43 2022 +0200
@@ -341,7 +341,7 @@
         # set a few dialog members for non-modal dialogs created on demand
         self.programsDialog = None
         self.shortcutsDialog = None
-        self.unittestDialog = None
+        self.__unittestWidget = None
         self.findFileNameDialog = None
         self.diffDlg = None
         self.compareDlg = None
@@ -2520,8 +2520,9 @@
         self.utDialogAct.setStatusTip(self.tr('Start unittest dialog'))
         self.utDialogAct.setWhatsThis(self.tr(
             """<b>Unittest</b>"""
-            """<p>Perform unit tests. The dialog gives you the"""
-            """ ability to select and run a unittest suite.</p>"""
+            """<p>Perform unit tests. The dialog gives the"""
+            """ ability to select and run a unittest suite or"""
+            """auto discover them.</p>"""
         ))
         self.utDialogAct.triggered.connect(self.__unittest)
         self.actions.append(self.utDialogAct)
@@ -5332,24 +5333,24 @@
         if dlg.exec() == QDialog.DialogCode.Accepted:
             self.toolGroups, self.currentToolGroup = dlg.getToolGroups()
     
-    # TODO: adjust to new unit test framework (without debugger)
     def __createUnitTestDialog(self):
         """
         Private slot to generate the unit test dialog on demand.
         """
-        if self.unittestDialog is None:
-            from PyUnit.UnittestDialog import UnittestDialog
-            self.unittestDialog = UnittestDialog(
-                None, self.__debugServer, self)
-            self.unittestDialog.unittestFile.connect(
+        if self.__unittestWidget is None:
+            from Unittest.UnittestWidget import UnittestWidget
+            self.__unittestWidget = UnittestWidget()
+            self.__unittestWidget.unittestFile.connect(
                 self.viewmanager.setFileLine)
-            self.unittestDialog.unittestStopped.connect(self.__unittestStopped)
+            self.__unittestWidget.unittestStopped.connect(
+                self.__unittestStopped)
     
     def __unittestStopped(self):
         """
         Private slot to handle the end of a unit test run.
         """
-        self.utRerunFailedAct.setEnabled(self.unittestDialog.hasFailedTests())
+        self.utRerunFailedAct.setEnabled(
+            self.__unittestWidget.hasFailedTests())
         self.utRestartAct.setEnabled(True)
     
     def __unittest(self):
@@ -5357,50 +5358,48 @@
         Private slot for displaying the unittest dialog.
         """
         self.__createUnitTestDialog()
-        self.unittestDialog.show()
-        self.unittestDialog.raise_()
+        self.__unittestWidget.show()
+        self.__unittestWidget.raise_()
     
     @pyqtSlot()
     @pyqtSlot(str)
-    def __unittestScript(self, prog=None):
+    def __unittestScript(self, testFile=None):
         """
         Private slot for displaying the unittest dialog and run the current
         script.
         
-        @param prog the python program to be opened
-        """
-        if prog is None:
+        @param testFile file containing the unit tests to be run
+        @type str
+        """
+        if testFile is None:
             aw = self.viewmanager.activeWindow()
             fn = aw.getFileName()
             tfn = Utilities.getTestFileName(fn)
             if os.path.exists(tfn):
-                prog = tfn
+                testFile = tfn
             else:
-                prog = fn
+                testFile = fn
         
         self.__unittest()
-        self.unittestDialog.setProjectMode(False)
-        self.unittestDialog.insertProg(prog)
+        self.__unittestWidget.setTestFile(testFile)
         self.utRestartAct.setEnabled(False)
         self.utRerunFailedAct.setEnabled(False)
-        
+    
+    @pyqtSlot()
     def __unittestProject(self):
         """
         Private slot for displaying the unittest dialog and run the current
         project.
         """
-        prog = None
+        testFile = None
         fn = self.project.getMainScript(True)
         if fn:
             tfn = Utilities.getTestFileName(fn)
             if os.path.exists(tfn):
-                prog = tfn
-            else:
-                prog = fn
+                testFile = tfn
         
         self.__unittest()
-        self.unittestDialog.setProjectMode(True)
-        self.unittestDialog.insertProg(prog)
+        self.__unittestWidget.setTestFile(testFile)
         self.utRestartAct.setEnabled(False)
         self.utRerunFailedAct.setEnabled(False)
         
@@ -5410,7 +5409,7 @@
         unit test.
         """
         self.__unittest()
-        self.unittestDialog.startTests()
+        self.__unittestWidget.startTests()
         
     def __unittestRerunFailed(self):
         """
@@ -5418,7 +5417,7 @@
         of the last run.
         """
         self.__unittest()
-        self.unittestDialog.startTests(failedOnly=True)
+        self.__unittestWidget.startTests(failedOnly=True)
     
     @pyqtSlot()
     @pyqtSlot(str)
@@ -6836,11 +6835,11 @@
                 self.shell.clearAllHistories()
             if unittests:
                 # clear the unit test histories
-                if self.unittestDialog is None:
-                    from PyUnit.UnittestDialog import clearSavedHistories
+                if self.__unittestWidget is None:
+                    from Unittest.UnittestWidget import clearSavedHistories
                     clearSavedHistories()
                 else:
-                    self.unittestDialog.clearRecent()
+                    self.__unittestWidget.clearRecent()
             if vcs:
                 # clear the VCS related histories
                 self.pluginManager.clearPluginsPrivateData("version_control")

eric ide

mercurial