summaryrefslogtreecommitdiffstats
path: root/testcases/Controllers/ODL/odlreport2db.py
diff options
context:
space:
mode:
Diffstat (limited to 'testcases/Controllers/ODL/odlreport2db.py')
-rwxr-xr-xtestcases/Controllers/ODL/odlreport2db.py133
1 files changed, 0 insertions, 133 deletions
diff --git a/testcases/Controllers/ODL/odlreport2db.py b/testcases/Controllers/ODL/odlreport2db.py
deleted file mode 100755
index 6b3fb913d..000000000
--- a/testcases/Controllers/ODL/odlreport2db.py
+++ /dev/null
@@ -1,133 +0,0 @@
-#!/usr/bin/python
-#
-# Authors:
-# - peter.bandzi@cisco.com
-# - morgan.richomme@orange.com
-#
-# src: Peter Bandzi
-# https://github.com/pbandzi/parse-robot/blob/master/convert_robot_to_json.py
-#
-# Copyright (c) 2015 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 getopt
-import json
-import sys
-import time
-import xmltodict
-
-import functest.utils.functest_utils as functest_utils
-
-
-def usage():
- print """Usage:
- python odlreport2db.py --xml=<output.xml> --help
- -x, --xml xml file generated by robot test
- -h, --help this message
- """
- sys.exit(2)
-
-
-def populate_detail(test):
- detail = {}
- 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
-
-
-def parse_test(tests, details):
- try:
- for test in tests:
- details.append(populate_detail(test))
- except TypeError:
- # tests is not iterable
- details.append(populate_detail(tests))
- return details
-
-
-def parse_suites(suites):
- data = {}
- details = []
- for suite in suites:
- a = suite['suite']
- if type(a) == list:
- for b in a:
- data['tests'] = parse_test(b['test'], details)
- else:
- data['tests'] = parse_test(a['test'], details)
-
- # data['details'] = parse_test(suite['test'], details)
- # suites is not iterable
- return data
-
-
-def main(argv):
- xml_file = None
- try:
- opts, args = getopt.getopt(argv,
- 'x:h',
- ['xml=', 'help'])
- except getopt.GetoptError:
- usage()
-
- for opt, arg in opts:
- if opt in ('-x', '--xml'):
- xml_file = arg
- else:
- usage()
-
- if xml_file is None:
- usage()
-
- with open(xml_file, "r") as myfile:
- xml_input = myfile.read().replace('\n', '')
-
- # dictionary populated with data from xml file
- all_data = xmltodict.parse(xml_input)['robot']
-
- try:
- data = parse_suites(all_data['suite']['suite'])
- data['description'] = all_data['suite']['@name']
- data['generator'] = all_data['@generator']
-
- json.dumps(data, indent=4, separators=(',', ': '))
-
- # success criteria for ODL = 100% of tests OK
- status = "FAIL"
- # TODO as part of the tests are executed before in the bash
- # start and stoptime have no real meaning
- start_time = time.time()
- stop_time = start_time
- tests_passed = 0
- tests_failed = 0
- for v in data['tests']:
- if v['status'] == "PASS":
- tests_passed += 1
- else:
- tests_failed += 1
-
- if (tests_failed < 1):
- status = "PASS"
-
- functest_utils.push_results_to_db("functest",
- "odl",
- None,
- start_time,
- stop_time,
- status,
- data)
-
- except:
- print("Error pushing ODL results into DB '%s'" % sys.exc_info()[0])
-
-
-if __name__ == "__main__":
- main(sys.argv[1:])