Do not allow testcase skipping in refstack 01/67301/1
authorJuha Kosonen <juha.kosonen@nokia.com>
Mon, 18 Mar 2019 11:40:05 +0000 (13:40 +0200)
committerCédric Ollivier <cedric.ollivier@orange.com>
Tue, 19 Mar 2019 13:07:11 +0000 (14:07 +0100)
Set the result of refstack_defcore as failed if there were skipped testcases
in a run.

Change-Id: Id782c2dee511cefbafd5b4440f386fd66f934a47
Signed-off-by: Juha Kosonen <juha.kosonen@nokia.com>
(cherry picked from commit cfd79ec4c39e215a25fc3d99fc5368e7d874f7bf)

docker/smoke/testcases.yaml
functest/ci/testcases.yaml
functest/opnfv_tests/openstack/tempest/tempest.py
functest/tests/unit/openstack/tempest/test_tempest.py

index 67e1573..49ad8a8 100644 (file)
@@ -60,6 +60,7 @@ tiers:
                 project_name: functest
                 criteria: 100
                 blocking: false
+                deny_skipping: true
                 description: >-
                     This test case runs a group of Rally jobs used in
                     OpenStack gating
index 912f35b..36a19c0 100644 (file)
@@ -229,6 +229,7 @@ tiers:
                 project_name: functest
                 criteria: 100
                 blocking: false
+                deny_skipping: true
                 description: >-
                     This test case runs a group of Rally jobs used in
                     OpenStack gating
index 597c711..57fedb7 100644 (file)
@@ -84,6 +84,7 @@ class TempestCommon(singlevm.VmReady2):
                 'neutron_extensions']
         except Exception:  # pylint: disable=broad-except
             pass
+        self.deny_skipping = kwargs.get("deny_skipping", False)
 
     def check_services(self):
         """Check the mandatory services."""
@@ -488,3 +489,10 @@ class TempestCommon(singlevm.VmReady2):
         if self.flavor_alt:
             self.orig_cloud.delete_flavor(self.flavor_alt.id)
         super(TempestCommon, self).clean()
+
+    def is_successful(self):
+        """The overall result of the test."""
+        skips = self.details.get("skipped_number", 0)
+        if skips > 0 and self.deny_skipping:
+            return testcase.TestCase.EX_TESTCASE_FAILED
+        return super(TempestCommon, self).is_successful()
index 646f882..f5a2f41 100644 (file)
@@ -250,6 +250,25 @@ class OSTempestTesting(unittest.TestCase):
             self._test_run(testcase.TestCase.EX_OK)
             args[0].assert_called_once_with()
 
+    def test_is_successful_false(self):
+        with mock.patch('six.moves.builtins.super') as mock_super:
+            self.tempestcommon.deny_skipping = True
+            self.tempestcommon.details = {"skipped_number": 2}
+            self.assertEqual(self.tempestcommon.is_successful(),
+                             testcase.TestCase.EX_TESTCASE_FAILED)
+            mock_super(tempest.TempestCommon,
+                       self).is_successful.assert_not_called()
+
+    def test_is_successful_true(self):
+        with mock.patch('six.moves.builtins.super') as mock_super:
+            self.tempestcommon.deny_skipping = False
+            self.tempestcommon.details = {"skipped_number": 2}
+            mock_super(tempest.TempestCommon,
+                       self).is_successful.return_value = 567
+            self.assertEqual(self.tempestcommon.is_successful(), 567)
+            mock_super(tempest.TempestCommon,
+                       self).is_successful.assert_called()
+
 
 if __name__ == "__main__":
     logging.disable(logging.CRITICAL)