eric7/PyUnit/UnittestDialog.py

branch
eric7
changeset 8331
960ce05a265c
parent 8327
666c2b81cbb7
child 8356
68ec9c3d4de5
diff -r 43c4e3ebba9e -r 960ce05a265c eric7/PyUnit/UnittestDialog.py
--- a/eric7/PyUnit/UnittestDialog.py	Thu May 20 18:20:56 2021 +0200
+++ b/eric7/PyUnit/UnittestDialog.py	Thu May 20 18:08:02 2021 +0200
@@ -581,27 +581,25 @@
         selectedTests = []
         if parent is None:
             # top level
-            for index in range(self.discoveryList.topLevelItemCount()):
-                itm = self.discoveryList.topLevelItem(index)
-                if itm.checkState(0) == Qt.CheckState.Checked:
-                    selectedTests.append(
-                        itm.data(0, UnittestDialog.TestCaseNameRole))
-                    # ignore children because they are included implicitly
-                elif itm.childCount():
-                    # recursively check children
-                    selectedTests.extend(self.__selectedTestCases(itm))
-        
+            itemsList = [
+                self.discoveryList.topLevelItem(index)
+                for index in range(self.discoveryList.topLevelItemCount())
+            ]
         else:
-            # parent item with children
-            for index in range(parent.childCount()):
-                itm = parent.child(index)
-                if itm.checkState(0) == Qt.CheckState.Checked:
-                    selectedTests.append(
-                        itm.data(0, UnittestDialog.TestCaseNameRole))
-                    # ignore children because they are included implicitly
-                elif itm.childCount():
-                    # recursively check children
-                    selectedTests.extend(self.__selectedTestCases(itm))
+            itemsList = [
+                parent.child(index)
+                for index in range(parent.childCount())
+            ]
+        
+        for itm in itemsList:
+            if (itm.checkState(0) == Qt.CheckState.Checked and
+                itm.childCount() == 0
+            ):
+                selectedTests.append(
+                    itm.data(0, UnittestDialog.TestCaseNameRole))
+            if itm.childCount():
+                # recursively check children
+                selectedTests.extend(self.__selectedTestCases(itm))
         
         return selectedTests
     
@@ -882,16 +880,22 @@
             self.testResult = QtTestResult(
                 self, self.failfastCheckBox.isChecked())
             self.totalTests = test.countTestCases()
-            self.__failedTests = []
-            self.__setRunningMode()
-            if cover:
-                cover.start()
-            test.run(self.testResult)
-            if cover:
-                cover.stop()
-                cover.save()
-            self.__setStoppedMode()
-            sys.path = self.savedSysPath
+            if self.totalTests == 0:
+                E5MessageBox.warning(
+                    self,
+                    self.tr("Unittest"),
+                    self.tr("""No unittest were found. Aborting..."""))
+            else:
+                self.__failedTests = []
+                self.__setRunningMode()
+                if cover:
+                    cover.start()
+                test.run(self.testResult)
+                if cover:
+                    cover.stop()
+                    cover.save()
+                self.__setStoppedMode()
+                sys.path = self.savedSysPath
     
     def __UTPrepared(self, nrTests, exc_type, exc_value):
         """

eric ide

mercurial