From 03fc68820d1badd600832de3b7c6dd72368dd198 Mon Sep 17 00:00:00 2001 From: Morgan Richomme Date: Wed, 8 Jun 2016 15:56:54 +0200 Subject: Adapt functest testcase to APi refactoring JIRA: FUNCTEST-303 Change-Id: Ia276d9ca6e8d62b496c3b5f81561b14b02c43fd7 Signed-off-by: Morgan Richomme --- testcases/features/bgpvpn.py | 26 ++++++++++++++------------ testcases/features/doctor.py | 22 ++++++++++++---------- testcases/features/promise.py | 37 ++++++++++++++----------------------- 3 files changed, 40 insertions(+), 45 deletions(-) (limited to 'testcases/features') diff --git a/testcases/features/bgpvpn.py b/testcases/features/bgpvpn.py index e3db9209d..bac255913 100644 --- a/testcases/features/bgpvpn.py +++ b/testcases/features/bgpvpn.py @@ -12,6 +12,7 @@ import argparse import os import re +import time import yaml import ConfigParser @@ -41,6 +42,7 @@ logger = ft_logger.Logger("bgpvpn").getLogger() def main(): logger.info("Running BGPVPN Tempest test case...") + start_time = time.time() cmd = 'cd ' + BGPVPN_REPO + ';pip install --no-deps -e .' ft_utils.execute_command(cmd, logger, exit_on_error=False) @@ -93,8 +95,9 @@ def main(): "errors": error_logs} logger.info("Results: " + str(json_results)) - criteria = "failed" + criteria = "FAIL" # criteria = success rate = 100% (i.e all tests passed) + # TODO use criteria defined in config file criteria_run = int(tests) if not failed: criteria_failed = 0 @@ -102,20 +105,19 @@ def main(): criteria_failed = int(failed) if criteria_run > 0 and criteria_failed < 1: - criteria = "passed" + criteria = "PASS" # Push results in payload of testcase if args.report: - logger.debug("Push result into DB") - url = TEST_DB_URL - scenario = ft_utils.get_scenario(logger) - version = ft_utils.get_version(logger) - pod_name = ft_utils.get_pod_name(logger) - build_tag = ft_utils.get_build_tag(logger) - - ft_utils.push_results_to_db(url, "sdnvpn", "bgpvpn_api", logger, - pod_name, version, scenario, criteria, - build_tag, json_results) + logger.debug("Push bgpvpn results into DB") + stop_time = time.time() + ft_utils.push_results_to_db("sdnvpn", + "bgpvpn_api", + logger, + start_time, + stop_time, + criteria, + json_results) if __name__ == '__main__': main() diff --git a/testcases/features/doctor.py b/testcases/features/doctor.py index ac68430a9..c7fc848c5 100644 --- a/testcases/features/doctor.py +++ b/testcases/features/doctor.py @@ -34,12 +34,12 @@ logger = ft_logger.Logger("doctor").getLogger() def main(): cmd = 'cd %s/tests && ./run.sh' % DOCTOR_REPO - start_time_ts = time.time() + start_time = time.time() ret = functest_utils.execute_command(cmd, logger, exit_on_error=False) - end_time_ts = time.time() - duration = round(end_time_ts - start_time_ts, 1) + stop_time = time.time() + duration = round(end_time_ts - start_time, 1) if ret: logger.info("doctor OK") test_status = 'OK' @@ -48,7 +48,7 @@ def main(): test_status = 'NOK' details = { - 'timestart': start_time_ts, + 'timestart': start_time, 'duration': duration, 'status': test_status, } @@ -61,7 +61,7 @@ def main(): if details['status'] == "OK": status = "passed" - logger.info("Pushing result: TEST_DB_URL=%(db)s pod_name=%(pod)s " + logger.info("Pushing Doctor results: TEST_DB_URL=%(db)s pod_name=%(pod)s " "version=%(v)s scenario=%(s)s criteria=%(c)s details=%(d)s" % { 'db': TEST_DB_URL, 'pod': pod_name, @@ -71,11 +71,13 @@ def main(): 'b': build_tag, 'd': details, }) - functest_utils.push_results_to_db(TEST_DB_URL, - 'doctor', 'doctor-notification', - logger, pod_name, version, scenario, - status, build_tag, details) - + functest_utils.push_results_to_db("doctor", + "doctor-notification", + logger, + start_time, + stop_time, + status, + details) if __name__ == '__main__': main() diff --git a/testcases/features/promise.py b/testcases/features/promise.py index c74c7cfa7..7f034643b 100644 --- a/testcases/features/promise.py +++ b/testcases/features/promise.py @@ -12,8 +12,8 @@ import argparse import json import os -import requests import subprocess +import time import yaml import keystoneclient.v2_0.client as ksclient @@ -71,6 +71,7 @@ logger = ft_logger.Logger("promise").getLogger() def main(): + start_time = time.time() ks_creds = openstack_utils.get_credentials("keystone") nv_creds = openstack_utils.get_credentials("nova") nt_creds = openstack_utils.get_credentials("neutron") @@ -235,33 +236,23 @@ def main(): start_time, end_time, duration)) if args.report: - pod_name = functest_utils.get_pod_name(logger) - installer = functest_utils.get_installer_type(logger) - scenario = functest_utils.get_scenario(logger) - version = functest_utils.get_version(logger) - build_tag = functest_utils.get_build_tag(logger) - # git_version = functest_utils.get_git_branch(PROMISE_REPO) - url = TEST_DB + "/results" - + stop_time = time.time() json_results = {"timestart": start_time, "duration": duration, "tests": int(tests), "failures": int(failures)} - logger.debug("Results json: " + str(json_results)) + logger.debug("Promise Results json: " + str(json_results)) # criteria for Promise in Release B was 100% of tests OK - status = "failed" + status = "FAIL" if int(tests) > 32 and int(failures) < 1: - status = "passed" - - params = {"project_name": "promise", "case_name": "promise", - "pod_name": str(pod_name), 'installer': installer, - "version": version, "scenario": scenario, - "criteria": status, "build_tag": build_tag, - 'details': json_results} - headers = {'Content-Type': 'application/json'} - - logger.info("Pushing results to DB...") - r = requests.post(url, data=json.dumps(params), headers=headers) - logger.debug(r) + status = "PASS" + + functest_utils.push_results_to_db("promise", + "promise", + logger, + start_time, + stop_time, + status, + json_results) if __name__ == '__main__': -- cgit 1.2.3-korg