From f46ead2782b9c32083a22c093385843426546813 Mon Sep 17 00:00:00 2001 From: Morgan Richomme Date: Fri, 10 Mar 2017 16:14:29 +0100 Subject: [PATCH] Remove raise exceptions until exceptions are better managed in abstraction Currently it triggers an exit from the jenkins job and prevent other tests to be run Change-Id: Id3b18c1d6d3b786fc78456b3ad51963d2cbb2cc1 Signed-off-by: Morgan Richomme (cherry picked from commit 6ac6937237bc03b27935f71bbb33c0abffc1e993) --- functest/core/vnf_base.py | 14 ++++++++------ functest/tests/unit/core/test_vnf_base.py | 21 +++++++++++++-------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/functest/core/vnf_base.py b/functest/core/vnf_base.py index daf8b8061..0300dd226 100644 --- a/functest/core/vnf_base.py +++ b/functest/core/vnf_base.py @@ -40,7 +40,8 @@ class VnfOnBoardingBase(base.TestcaseBase): self.tenant_description = CONST.__getattribute__( 'vnf_{}_tenant_description'.format(self.case_name)) except: - raise Exception("Unknown VNF case=" + self.case_name) + # raise Exception("Unknown VNF case=" + self.case_name) + self.logger.error("Unknown VNF case={}".format(self.case_name)) try: self.images = CONST.__getattribute__( @@ -81,7 +82,7 @@ class VnfOnBoardingBase(base.TestcaseBase): vnf_ready_time - orchestrator_ready_time, 1) except Exception: self.logger.error("Error during VNF deployment", exc_info=True) - raise Exception("Error during VNF deployment") + return base.TestcaseBase.EX_TESTCASE_FAILED # Test VNF try: @@ -94,7 +95,7 @@ class VnfOnBoardingBase(base.TestcaseBase): test_vnf_done_time - vnf_ready_time, 1) except Exception: self.logger.error("Error when running VNF tests", exc_info=True) - raise Exception("Error when running VNF tests") + return base.TestcaseBase.EX_TESTCASE_FAILED # Clean the system self.clean() @@ -178,11 +179,11 @@ class VnfOnBoardingBase(base.TestcaseBase): # TODO see how to use built-in exception from releng module def deploy_vnf(self): self.logger.error("VNF must be deployed") - raise Exception("VNF not deployed") + return base.TestcaseBase.EX_TESTCASE_FAILED def test_vnf(self): self.logger.error("VNF must be tested") - raise Exception("VNF not tested") + return base.TestcaseBase.EX_TESTCASE_FAILED def clean(self): self.logger.info("test cleaning") @@ -230,4 +231,5 @@ class VnfOnBoardingBase(base.TestcaseBase): part = inspect.stack()[1][3] self.details[part]['status'] = 'FAIL' self.details[part]['result'] = error_msg - raise Exception(error_msg) + self.logger.error("Step failure:{}".format(error_msg)) + return base.TestcaseBase.EX_TESTCASE_FAILED diff --git a/functest/tests/unit/core/test_vnf_base.py b/functest/tests/unit/core/test_vnf_base.py index e27f2164b..25a74b7c9 100644 --- a/functest/tests/unit/core/test_vnf_base.py +++ b/functest/tests/unit/core/test_vnf_base.py @@ -8,9 +8,11 @@ # http://www.apache.org/licenses/LICENSE-2.0 import logging +import mock import unittest from functest.core import vnf_base +from functest.core import testcase_base class VnfBaseTesting(unittest.TestCase): @@ -35,18 +37,21 @@ class VnfBaseTesting(unittest.TestCase): "result": "", "duration": 5}} - def test_deploy_vnf_unimplemented(self): - with self.assertRaises(Exception) as context: - self.test.deploy_vnf() - self.assertTrue('VNF not deployed' in context.exception) + @mock.patch('logging.Logger.error') + def test_deploy_vnf_unimplemented(self, mock): + self.assertEqual(self.test.deploy_vnf(), + testcase_base.TestcaseBase.EX_TESTCASE_FAILED) + mock.assert_called_with('VNF must be deployed') - def test_test_vnf_unimplemented(self): - with self.assertRaises(Exception) as context: - self.test.test_vnf()() - self.assertTrue('VNF not tested' in context.exception) + @mock.patch('logging.Logger.error') + def test_test_vnf_unimplemented(self, mock): + self.assertEqual(self.test.test_vnf(), + testcase_base.TestcaseBase.EX_TESTCASE_FAILED) + mock.assert_called_with('VNF must be tested') def test_parse_results(self): self.assertNotEqual(self.test.parse_results(), 0) + if __name__ == "__main__": unittest.main(verbosity=2) -- 2.16.6