From 19fe5417abf7e51bca79d164bf8d48b7a02e4077 Mon Sep 17 00:00:00 2001 From: h-hayashi Date: Mon, 30 Jan 2017 17:15:41 +0900 Subject: [PATCH] Adapt doctor test case to the FeatureBase framework MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit JIRA: FUNCTEST-545 1. Modification of “doctor.py” to adapt Feature Base framework. deletion of detail("timestart and duration , status). 2. Deletion of definition of doctor’s repo directory in “functest_const.py" Change-Id: I81d944dc64a81346cbf465c452111f11474ea83c Signed-off-by: Hideyasu Hayashi --- functest/ci/config_functest.yaml | 2 +- functest/ci/testcases.yaml | 3 ++ functest/opnfv_tests/features/doctor.py | 81 ++++----------------------------- functest/utils/functest_constants.py | 2 - 4 files changed, 12 insertions(+), 76 deletions(-) diff --git a/functest/ci/config_functest.yaml b/functest/ci/config_functest.yaml index 2820f8b0..2feab771 100755 --- a/functest/ci/config_functest.yaml +++ b/functest/ci/config_functest.yaml @@ -21,7 +21,7 @@ general: repo_sfc: /home/opnfv/repos/sfc dir_repo_onos: /home/opnfv/repos/onos dir_repo_promise: /home/opnfv/repos/promise - dir_repo_doctor: /home/opnfv/repos/doctor + repo_doctor: /home/opnfv/repos/doctor repo_copper: /home/opnfv/repos/copper dir_repo_ovno: /home/opnfv/repos/ovno repo_parser: /home/opnfv/repos/parser diff --git a/functest/ci/testcases.yaml b/functest/ci/testcases.yaml index f1cce489..27d358bf 100755 --- a/functest/ci/testcases.yaml +++ b/functest/ci/testcases.yaml @@ -195,6 +195,9 @@ tiers: dependencies: installer: '(apex)|(fuel)|(joid)' scenario: '^((?!fdio).)*$' + run: + module: 'functest.opnfv_tests.features.doctor' + class: 'Doctor' - name: bgpvpn diff --git a/functest/opnfv_tests/features/doctor.py b/functest/opnfv_tests/features/doctor.py index dbd803a6..4d295a67 100755 --- a/functest/opnfv_tests/features/doctor.py +++ b/functest/opnfv_tests/features/doctor.py @@ -1,6 +1,6 @@ #!/usr/bin/python # -# Copyright (c) 2015 All rights reserved +# Copyright (c) 2017 All rights reserved # This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 # which accompanies this distribution, and is available at @@ -13,77 +13,12 @@ # 0.2: measure test duration and publish results under json format # # -import argparse -import os -import time +import functest.core.feature_base as base -import functest.utils.functest_logger as ft_logger -import functest.utils.functest_utils as functest_utils -import functest.utils.functest_constants as ft_constants -parser = argparse.ArgumentParser() -parser.add_argument("-r", "--report", - help="Create json result file", - action="store_true") -args = parser.parse_args() - -functest_yaml = functest_utils.get_functest_yaml() - -DOCTOR_REPO_DIR = ft_constants.DOCTOR_REPO_DIR -RESULTS_DIR = ft_constants.FUNCTEST_RESULTS_DIR - -logger = ft_logger.Logger("doctor").getLogger() - - -def main(): - exit_code = -1 - - # if the image name is explicitly set for the doctor suite, set it as - # enviroment variable - if 'doctor' in functest_yaml and 'image_name' in functest_yaml['doctor']: - os.environ["IMAGE_NAME"] = functest_yaml['doctor']['image_name'] - - cmd = 'cd %s/tests && ./run.sh' % DOCTOR_REPO_DIR - log_file = RESULTS_DIR + "/doctor.log" - - start_time = time.time() - - ret = functest_utils.execute_command(cmd, - info=True, - output_file=log_file) - - stop_time = time.time() - duration = round(stop_time - start_time, 1) - if ret == 0: - logger.info("Doctor test case OK") - test_status = 'OK' - exit_code = 0 - else: - logger.info("Doctor test case FAILED") - test_status = 'NOK' - - details = { - 'timestart': start_time, - 'duration': duration, - 'status': test_status, - } - status = "FAIL" - if details['status'] == "OK": - status = "PASS" - functest_utils.logger_test_results("Doctor", - "doctor-notification", - status, details) - if args.report: - functest_utils.push_results_to_db("doctor", - "doctor-notification", - start_time, - stop_time, - status, - details) - logger.info("Doctor results pushed to DB") - - exit(exit_code) - - -if __name__ == '__main__': - main() +class Doctor(base.FeatureBase): + def __init__(self): + super(Doctor, self).__init__(project='doctor', + case='doctor-notification', + repo='dir_repo_doctor') + self.cmd = 'cd %s/tests && ./run.sh' % self.repo diff --git a/functest/utils/functest_constants.py b/functest/utils/functest_constants.py index 3cc744c6..bd109785 100644 --- a/functest/utils/functest_constants.py +++ b/functest/utils/functest_constants.py @@ -220,8 +220,6 @@ PROMISE_SUBNET_CIDR = get_value('promise.subnet_cidr', 'PROMISE_SUBNET_CIDR') PROMISE_ROUTER_NAME = get_value('promise.router_name', 'PROMISE_ROUTER_NAME') -DOCTOR_REPO_DIR = get_value('general.dir.dir_repo_doctor', - 'DOCTOR_REPO_DIR') COPPER_REPO_DIR = get_value('general.dir.repo_copper', 'COPPER_REPO_DIR') EXAMPLE_INSTANCE_NAME = get_value('example.vm_name', -- 2.16.6