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/opnfv_tests/features/sdnvpn.py | 80 +++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 functest/opnfv_tests/features/sdnvpn.py (limited to 'functest/opnfv_tests') diff --git a/functest/opnfv_tests/features/sdnvpn.py b/functest/opnfv_tests/features/sdnvpn.py new file mode 100644 index 00000000..efc67b09 --- /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