summaryrefslogtreecommitdiffstats
path: root/testcases/Controllers/ODL/odlreport2db.py
diff options
context:
space:
mode:
Diffstat (limited to 'testcases/Controllers/ODL/odlreport2db.py')
-rw-r--r--[-rwxr-xr-x]testcases/Controllers/ODL/odlreport2db.py67
1 files changed, 18 insertions, 49 deletions
diff --git a/testcases/Controllers/ODL/odlreport2db.py b/testcases/Controllers/ODL/odlreport2db.py
index 368d26611..6b3fb913d 100755..100644
--- a/testcases/Controllers/ODL/odlreport2db.py
+++ b/testcases/Controllers/ODL/odlreport2db.py
@@ -14,13 +14,6 @@
#
# http://www.apache.org/licenses/LICENSE-2.0
#
-# 0.1: This script boots the VM1 and allocates IP address from Nova
-# Later, the VM2 boots then execute cloud-init to ping VM1.
-# After successful ping, both the VMs are deleted.
-# 0.2: measure test duration and publish results under json format
-# 0.3: adapt push 2 DB after Test API refacroting
-#
-#
import getopt
import json
@@ -33,13 +26,8 @@ import functest.utils.functest_utils as functest_utils
def usage():
print """Usage:
- python odlreport2db.py --xml=<output.xml> --pod=<pod name>
- --installer=<installer> --database=<database url>
- --scenario=<scenario>
+ python odlreport2db.py --xml=<output.xml> --help
-x, --xml xml file generated by robot test
- -p, --pod POD name where the test come from
- -i, --installer
- -s, --scenario
-h, --help this message
"""
sys.exit(2)
@@ -47,9 +35,11 @@ def usage():
def populate_detail(test):
detail = {}
- detail['test_name'] = test['@name']
- detail['test_status'] = test['status']
- detail['test_doc'] = test['doc']
+ detail['name'] = test['@name']
+ for x in ['status', 'critical', 'starttime', 'endtime']:
+ detail[x] = test['status']['@' + x]
+ if '#text' in test['status']:
+ detail['text'] = test['status']['#text']
return detail
@@ -70,9 +60,9 @@ def parse_suites(suites):
a = suite['suite']
if type(a) == list:
for b in a:
- data['details'] = parse_test(b['test'], details)
+ data['tests'] = parse_test(b['test'], details)
else:
- data['details'] = parse_test(a['test'], details)
+ data['tests'] = parse_test(a['test'], details)
# data['details'] = parse_test(suite['test'], details)
# suites is not iterable
@@ -80,32 +70,21 @@ def parse_suites(suites):
def main(argv):
- (xml_file, pod, installer, scenario) = None, None, None, None
+ xml_file = None
try:
opts, args = getopt.getopt(argv,
- 'x:p:i:s:h',
- ['xml=', 'pod=',
- 'installer=',
- 'scenario=',
- 'help'])
+ 'x:h',
+ ['xml=', 'help'])
except getopt.GetoptError:
usage()
for opt, arg in opts:
- if opt in ('-h', '--help'):
- usage()
- elif opt in ('-x', '--xml'):
+ if opt in ('-x', '--xml'):
xml_file = arg
- elif opt in ('-p', '--pod'):
- pod = arg
- elif opt in ('-i', '--installer'):
- installer = arg
- elif opt in ('-s', '--scenario'):
- scenario = arg
else:
usage()
- if not all(x is not None for x in (xml_file, pod, installer, scenario)):
+ if xml_file is None:
usage()
with open(xml_file, "r") as myfile:
@@ -117,20 +96,10 @@ def main(argv):
try:
data = parse_suites(all_data['suite']['suite'])
data['description'] = all_data['suite']['@name']
- data['version'] = all_data['@generator']
- data['test_project'] = "functest"
- data['case_name'] = "odl"
- data['pod_name'] = pod
- data['installer'] = installer
+ data['generator'] = all_data['@generator']
json.dumps(data, indent=4, separators=(',', ': '))
- # example:
- # python odlreport2db.py -x ~/Pictures/Perso/odl/output3.xml
- # -i fuel
- # -p opnfv-jump-2
- # -s os-odl_l2-ha
-
# success criteria for ODL = 100% of tests OK
status = "FAIL"
# TODO as part of the tests are executed before in the bash
@@ -139,8 +108,8 @@ def main(argv):
stop_time = start_time
tests_passed = 0
tests_failed = 0
- for v in data['details']:
- if v['test_status']['@status'] == "PASS":
+ for v in data['tests']:
+ if v['status'] == "PASS":
tests_passed += 1
else:
tests_failed += 1
@@ -148,8 +117,8 @@ def main(argv):
if (tests_failed < 1):
status = "PASS"
- functest_utils.push_results_to_db(data['test_project'],
- data['case_name'],
+ functest_utils.push_results_to_db("functest",
+ "odl",
None,
start_time,
stop_time,