diff options
Diffstat (limited to 'functest/core')
-rw-r--r--[-rwxr-xr-x] | functest/core/pytest_suite_runner.py | 0 | ||||
-rw-r--r-- | functest/core/testcase_base.py | 47 | ||||
-rw-r--r-- | functest/core/vnf_base.py | 12 |
3 files changed, 43 insertions, 16 deletions
diff --git a/functest/core/pytest_suite_runner.py b/functest/core/pytest_suite_runner.py index 1eed92b5..1eed92b5 100755..100644 --- a/functest/core/pytest_suite_runner.py +++ b/functest/core/pytest_suite_runner.py diff --git a/functest/core/testcase_base.py b/functest/core/testcase_base.py index 838b6398..ec46bc64 100644 --- a/functest/core/testcase_base.py +++ b/functest/core/testcase_base.py @@ -9,6 +9,7 @@ import os +from functest.utils.constants import CONST import functest.utils.functest_logger as ft_logger import functest.utils.functest_utils as ft_utils @@ -17,7 +18,7 @@ class TestcaseBase(object): EX_OK = os.EX_OK EX_RUN_ERROR = os.EX_SOFTWARE - EX_PUSH_TO_DB_ERROR = os.EX_SOFTWARE - 1 + EX_PUBLISH_RESULT_FAILED = os.EX_SOFTWARE - 1 EX_TESTCASE_FAILED = os.EX_SOFTWARE - 2 logger = ft_logger.Logger(__name__).getLogger() @@ -43,21 +44,45 @@ class TestcaseBase(object): self.logger.error("Run must be implemented") return TestcaseBase.EX_RUN_ERROR - def push_to_db(self): + def publish_report(self): + if "RESULTS_STORE" in os.environ: + CONST.results_test_db_url = os.environ['RESULTS_STORE'] + try: assert self.project_name assert self.case_name assert self.criteria assert self.start_time assert self.stop_time - if ft_utils.push_results_to_db( - self.project_name, self.case_name, self.start_time, - self.stop_time, self.criteria, self.details): - self.logger.info("The results were successfully pushed to DB") - return TestcaseBase.EX_OK + if CONST.results_test_db_url.lower().startswith( + ("http://", "https://")): + self.push_to_db() + elif CONST.results_test_db_url.lower().startswith("file://"): + self.write_to_file() else: - self.logger.error("The results cannot be pushed to DB") - return TestcaseBase.EX_PUSH_TO_DB_ERROR + self.logger.error("Please check parameter test_db_url and " + "OS environ variable RESTULTS_STORE") + return TestcaseBase.EX_PUBLISH_RESULT_FAILED except Exception: - self.logger.exception("The results cannot be pushed to DB") - return TestcaseBase.EX_PUSH_TO_DB_ERROR + self.logger.exception("The results cannot be stored") + return TestcaseBase.EX_PUBLISH_RESULT_FAILED + + def write_to_file(self): + if ft_utils.write_results_to_file( + self.project_name, self.case_name, self.start_time, + self.stop_time, self.criteria, self.details): + self.logger.info("The results were successfully written to a file") + return TestcaseBase.EX_OK + else: + self.logger.error("write results to a file failed") + return TestcaseBase.EX_PUBLISH_RESULT_FAILED + + def push_to_db(self): + if ft_utils.push_results_to_db( + self.project_name, self.case_name, self.start_time, + self.stop_time, self.criteria, self.details): + self.logger.info("The results were successfully pushed to DB") + return TestcaseBase.EX_OK + else: + self.logger.error("The results cannot be pushed to DB") + return TestcaseBase.EX_PUBLISH_RESULT_FAILED diff --git a/functest/core/vnf_base.py b/functest/core/vnf_base.py index 99520494..4d019858 100644 --- a/functest/core/vnf_base.py +++ b/functest/core/vnf_base.py @@ -35,6 +35,7 @@ class VnfOnBoardingBase(base.TestcaseBase): self.details['orchestrator'] = {} self.details['vnf'] = {} self.details['test_vnf'] = {} + self.images = {} try: self.tenant_name = CONST.__getattribute__( 'vnf_{}_tenant_name'.format(self.case_name)) @@ -44,7 +45,7 @@ class VnfOnBoardingBase(base.TestcaseBase): raise Exception("Unknown VNF case=" + self.case_name) try: - self.tenant_images = CONST.__getattribute__( + self.images = CONST.__getattribute__( 'vnf_{}_tenant_images'.format(self.case_name)) except: self.logger.warn("No tenant image defined for this VNF") @@ -152,14 +153,15 @@ class VnfOnBoardingBase(base.TestcaseBase): self.logger.info("Update OpenStack creds informations") self.creds.update({ - "username": self.tenant_name, - "password": self.tenant_name, "tenant": self.tenant_name, }) - self.glance_client = os_utils.get_glance_client(self.creds) self.neutron_client = os_utils.get_neutron_client(self.creds) self.nova_client = os_utils.get_nova_client(self.creds) - + self.creds.update({ + "username": self.tenant_name, + "password": self.tenant_name, + }) + self.glance_client = os_utils.get_glance_client(self.creds) self.logger.info("Upload some OS images if it doesn't exist") temp_dir = os.path.join(self.data_dir, "tmp/") |