From: SerenaFeng Date: Thu, 22 Dec 2016 03:16:39 +0000 (+0800) Subject: Refactor domino using FeatureBase and new constants provider X-Git-Tag: 0.2~993 X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=62ffd8a7e6790ab0377550740d3cfe8eea298392;p=functest-xtesting.git Refactor domino using FeatureBase and new constants provider JIRA: FUNCTEST-673 Change-Id: I153fd5ca68deffa6fd140e62f438cf6ee5404f98 Signed-off-by: SerenaFeng --- diff --git a/functest/ci/config_functest.yaml b/functest/ci/config_functest.yaml index a9835315..0e1e26bf 100755 --- a/functest/ci/config_functest.yaml +++ b/functest/ci/config_functest.yaml @@ -25,7 +25,7 @@ general: repo_copper: /home/opnfv/repos/copper dir_repo_ovno: /home/opnfv/repos/ovno repo_parser: /home/opnfv/repos/parser - dir_repo_domino: /home/opnfv/repos/domino + repo_domino: /home/opnfv/repos/domino dir_repo_snaps: /home/opnfv/repos/snaps functest: /home/opnfv/functest functest_test: /home/opnfv/repos/functest/functest/opnfv_tests diff --git a/functest/opnfv_tests/features/domino.py b/functest/opnfv_tests/features/domino.py index 341648f4..b36220fa 100755 --- a/functest/opnfv_tests/features/domino.py +++ b/functest/opnfv_tests/features/domino.py @@ -14,65 +14,12 @@ # 0.3: add report flag to push results when needed # 0.4: refactoring to match Test abstraction class -import argparse -import os -import sys -import time +import functest.core.feature_base as base -import functest.core.testcase_base as testcase_base -import functest.utils.functest_constants as ft_constants -import functest.utils.functest_logger as ft_logger -import functest.utils.functest_utils as ft_utils - - -class DominoCases(testcase_base.TestcaseBase): - DOMINO_REPO = ft_constants.DOMINO_REPO_DIR - RESULTS_DIR = ft_constants.FUNCTEST_RESULTS_DIR - logger = ft_logger.Logger("domino").getLogger() +class Domino(base.FeatureBase): def __init__(self): - super(DominoCases, self).__init__() - self.project_name = "domino" - self.case_name = "domino-multinode" - - def main(self, **kwargs): - cmd = 'cd %s && ./tests/run_multinode.sh' % self.DOMINO_REPO - log_file = os.path.join(self.RESULTS_DIR, "domino.log") - start_time = time.time() - - ret = ft_utils.execute_command(cmd, - output_file=log_file) - - stop_time = time.time() - if ret == 0: - self.logger.info("domino OK") - status = 'PASS' - else: - self.logger.info("domino FAILED") - status = "FAIL" - - # report status only if tests run (FAIL OR PASS) - self.criteria = status - self.start_time = start_time - self.stop_time = stop_time - self.details = {} - - def run(self): - kwargs = {} - return self.main(**kwargs) - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument("-r", "--report", - help="Create json result file", - action="store_true") - args = vars(parser.parse_args()) - domino = DominoCases() - try: - result = domino.main(**args) - if result != testcase_base.TestcaseBase.EX_OK: - sys.exit(result) - if args['report']: - sys.exit(domino.push_to_db()) - except Exception: - sys.exit(testcase_base.TestcaseBase.EX_RUN_ERROR) + super(Domino, self).__init__(project='domino', + case='domino-multinode', + repo='dir_repo_domino') + self.cmd = 'cd %s && ./tests/run_multinode.sh' % self.repo diff --git a/functest/utils/functest_constants.py b/functest/utils/functest_constants.py index de7e9708..ae3e527f 100644 --- a/functest/utils/functest_constants.py +++ b/functest/utils/functest_constants.py @@ -7,8 +7,9 @@ # http://www.apache.org/licenses/LICENSE-2.0 # import os -import functest.utils.functest_utils as ft_utils + import functest.utils.functest_logger as ft_logger +import functest.utils.functest_utils as ft_utils logger = ft_logger.Logger("functest_constants").getLogger() @@ -87,7 +88,7 @@ OPENSTACK_CREDS = get_value('general.openstack.creds', 'creds') OPENSTACK_SNAPSHOT_FILE = get_value('general.openstack.snapshot_file', 'OPENSTACK_SNAPSHOT_FILE') -DOMINO_REPO_DIR = get_value('general.dir.dir_repo_domino', +DOMINO_REPO_DIR = get_value('general.dir.repo_domino', 'DOMINO_REPO_DIR') SDNVPN_REPO_DIR = get_value('general.dir.repo_sdnvpn', 'SDNVPN_REPO_DIR')