From 7b105b251f79c9fdbf2536d1d9d15cea2e5355e1 Mon Sep 17 00:00:00 2001 From: "jose.lausuch" Date: Wed, 23 Nov 2016 14:36:24 +0100 Subject: Conform SDNVPN test case to TestCaseBase JIRA: FUNCTEST-553 We need to remove the push_to_db of the overall result in run_tests.py in sdnvpn repo. Change-Id: I761d9b3ddd0972bfbf1155424615aeb1c9202ad9 Signed-off-by: jose.lausuch --- functest/ci/exec_test.sh | 4 -- functest/ci/testcases.yaml | 5 ++- functest/opnfv_tests/features/sdnvpn.py | 80 +++++++++++++++++++++++++++++++++ 3 files changed, 84 insertions(+), 5 deletions(-) create mode 100644 functest/opnfv_tests/features/sdnvpn.py diff --git a/functest/ci/exec_test.sh b/functest/ci/exec_test.sh index 4d913c52c..f7b96af29 100644 --- a/functest/ci/exec_test.sh +++ b/functest/ci/exec_test.sh @@ -111,10 +111,6 @@ function run_test(){ python ${FUNCTEST_TEST_DIR}/OpenStack/rally/run_rally-cert.py \ $clean_flag --sanity all $report ;; - "bgpvpn") - sdnvpn_repo_dir=${repos_dir}/sdnvpn/test/functest/ - python ${sdnvpn_repo_dir}/run_tests.py $report - ;; "onos") python ${FUNCTEST_TEST_DIR}/Controllers/ONOS/Teston/onosfunctest.py ;; diff --git a/functest/ci/testcases.yaml b/functest/ci/testcases.yaml index 1b7747c75..195108b4b 100644 --- a/functest/ci/testcases.yaml +++ b/functest/ci/testcases.yaml @@ -151,6 +151,9 @@ tiers: dependencies: installer: '(fuel)|(apex)' scenario: 'bgpvpn' + run: + module: 'functest.opnfv_tests.features.sdnvpn' + class: 'SDNVPN' - name: security_scan @@ -228,7 +231,7 @@ tiers: dependencies: installer: 'fuel' scenario: '^((?!bgpvpn|noha).)*$' - + - name: openstack order: 4 diff --git a/functest/opnfv_tests/features/sdnvpn.py b/functest/opnfv_tests/features/sdnvpn.py new file mode 100644 index 000000000..efc67b099 --- /dev/null +++ b/functest/opnfv_tests/features/sdnvpn.py @@ -0,0 +1,80 @@ +#!/usr/bin/python +# +# Copyright (c) 2016 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 +# +# http://www.apache.org/licenses/LICENSE-2.0 +# + + +import argparse +import os +import sys +import time + +from functest.core import TestCasesBase +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 SDNVPN(TestCasesBase.TestCasesBase): + SDNVPN_REPO = ft_constants.SDNVPN_REPO_DIR + SDNVPN_REPO_TESTS = os.path.join(SDNVPN_REPO, "tests/functest") + RESULTS_DIR = ft_constants.FUNCTEST_RESULTS_DIR + logger = ft_logger.Logger("sdnvpn").getLogger() + + def __init__(self): + super(SDNVPN, self).__init__() + self.project_name = "sdnvpn" + self.case_name = "bgpvpn" + + def main(self, **kwargs): + os.chdir(self.SDNVPN_REPO_TESTS) + cmd = 'run_tests.py' + log_file = os.path.join(self.RESULTS_DIR, "sdnvpn.log") + start_time = time.time() + + ret = ft_utils.execute_command(cmd, + output_file=log_file) + + stop_time = time.time() + duration = round(stop_time - start_time, 1) + if ret == 0 and duration > 1: + self.logger.info("%s OK" % self.case_name) + status = 'PASS' + elif ret == 0 and duration <= 1: + self.logger.info("%s TEST SKIPPED" % self.case_name) + status = 'SKIP' + else: + self.logger.info("%s FAILED" % self.case_name) + status = "FAIL" + + # report status only if tests run (FAIL OR PASS) + if status is not "SKIP": + 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()) + sdnvpn = SDNVPN() + try: + result = sdnvpn.main(**args) + if result != TestCasesBase.TestCasesBase.EX_OK: + sys.exit(result) + if args['report']: + sys.exit(sdnvpn.push_to_db()) + except Exception: + sys.exit(TestCasesBase.TestCasesBase.EX_RUN_ERROR) -- cgit 1.2.3-korg