diff options
Diffstat (limited to 'testcases/features/promise.py')
-rw-r--r-- | testcases/features/promise.py | 78 |
1 files changed, 54 insertions, 24 deletions
diff --git a/testcases/features/promise.py b/testcases/features/promise.py index b0fadf708..a92029427 100644 --- a/testcases/features/promise.py +++ b/testcases/features/promise.py @@ -10,6 +10,7 @@ # Maintainer : jose.lausuch@ericsson.com # import argparse +import json import logging import os import subprocess @@ -36,7 +37,7 @@ with open('/home/opnfv/functest/conf/config_functest.yaml') as f: dirs = functest_yaml.get('general').get('directories') FUNCTEST_REPO = dirs.get('dir_repo_functest') PROMISE_REPO = dirs.get('dir_repo_promise') -TEST_DB_URL = functest_yaml.get('results').get('test_db_url') +TEST_DB = functest_yaml.get('results').get('test_db_url') TENANT_NAME = functest_yaml.get('promise').get('general').get('tenant_name') TENANT_DESCRIPTION = functest_yaml.get('promise').get( @@ -199,16 +200,14 @@ def main(): os.chdir(PROMISE_REPO) - results_file=open('promise-results.json','w+') - cmd = 'DEBUG=1 npm run -s test -- --reporter json' - start_time_ts = time.time() + results_file_name='promise-results.json' + results_file=open(results_file_name,'w+') + cmd = 'npm run -s test -- --reporter json' logger.info("Running command: %s" % cmd) ret = subprocess.call(cmd, shell=True, stdout=results_file, \ stderr=subprocess.STDOUT) results_file.close() - end_time_ts = time.time() - duration = round(end_time_ts - start_time_ts, 1) if ret == 0: logger.info("The test succeeded.") @@ -218,25 +217,56 @@ def main(): test_status = "Failed" # Print output of file - results_file=open('promise-results.json','r') - print results_file.read() - results_file.close() - + with open(results_file_name,'r') as results_file: + data = results_file.read() + logger.debug("\n%s" % data) + json_data = json.loads(data) + + suites = json_data["stats"]["suites"] + tests = json_data["stats"]["tests"] + passes = json_data["stats"]["passes"] + pending = json_data["stats"]["pending"] + failures = json_data["stats"]["failures"] + start_time = json_data["stats"]["start"] + end_time = json_data["stats"]["end"] + duration = float(json_data["stats"]["duration"])/float(1000) + + logger.info("\n" \ + "****************************************\n"\ + " Promise test report\n\n"\ + "****************************************\n"\ + " Suites: \t%s\n"\ + " Tests: \t%s\n"\ + " Passes: \t%s\n"\ + " Pending: \t%s\n"\ + " Failures:\t%s\n"\ + " Start: \t%s\n"\ + " End: \t%s\n"\ + " Duration:\t%s\n"\ + "****************************************\n\n"\ + % (suites, tests, passes, pending, failures, 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) + git_version = functest_utils.get_git_branch(PROMISE_REPO) + url = TEST_DB + "/results" + + json_results = {"timestart": start_time, "duration": duration, + "tests": int(tests), "failures": int(failures)} + logger.debug("Results json: "+str(json_results)) + + params = {"project_name": "promise", "case_name": "promise", + "pod_name": str(pod_name), 'installer': installer, + "version": scenario, '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) - details = { - 'timestart': start_time_ts, - 'duration': duration, - 'status': test_status, - } - pod_name = functest_utils.get_pod_name() - git_version = functest_utils.get_git_branch(PROMISE_REPO) - #functest_utils.push_results_to_db(TEST_DB_URL, - # 'promise', - # None, - # pod_name, - # git_version, - # details) - # if __name__ == '__main__': main() |