diff options
author | Tibor Frank <tifrank@cisco.com> | 2018-04-09 16:13:14 +0200 |
---|---|---|
committer | Tibor Frank <tifrank@cisco.com> | 2018-04-09 16:13:14 +0200 |
commit | 6ea69cafac7f15af3abc161bbc200ab2bd320e87 (patch) | |
tree | 705249ada7399b4cbae5743b25f3ee8e0df79628 /resources/tools/presentation | |
parent | 061ea1864e550ea7f9fbc6bc2a096b2cedd94b96 (diff) |
PAL Trending: Add build date to csv and txt tables
Change-Id: I75e614b45bcf1b38709b551ba13bc6e54d2c978d
Signed-off-by: Tibor Frank <tifrank@cisco.com>
Diffstat (limited to 'resources/tools/presentation')
-rw-r--r-- | resources/tools/presentation/generator_CPTA.py | 22 | ||||
-rw-r--r-- | resources/tools/presentation/input_data_parser.py | 7 |
2 files changed, 23 insertions, 6 deletions
diff --git a/resources/tools/presentation/generator_CPTA.py b/resources/tools/presentation/generator_CPTA.py index 9cce8ed8b2..967eb6003d 100644 --- a/resources/tools/presentation/generator_CPTA.py +++ b/resources/tools/presentation/generator_CPTA.py @@ -362,13 +362,25 @@ def _generate_all_charts(spec, input_data): :type input_data: InputData """ - csv_table = list() - # Create the header: builds = spec.cpta["data"].values()[0] job_name = spec.cpta["data"].keys()[0] builds_lst = [str(build) for build in range(builds[0], builds[-1] + 1)] + + # Get "build ID": "date" dict: + build_dates = dict() + for build in builds_lst: + try: + build_dates[build] = \ + input_data.metadata(job_name, build)["generated"][:14] + except KeyError: + pass + + # Create the header: + csv_table = list() header = "Build Number:," + ",".join(builds_lst) + '\n' csv_table.append(header) + header = "Build Date:," + ",".join(build_dates.values()) + '\n' + csv_table.append(header) results = list() for chart in spec.cpta["plots"]: @@ -445,19 +457,19 @@ def _generate_all_charts(spec, input_data): txt_table = None with open("{0}.csv".format(file_name), 'rb') as csv_file: csv_content = csv.reader(csv_file, delimiter=',', quotechar='"') - header = True + line_nr = 0 for row in csv_content: if txt_table is None: txt_table = prettytable.PrettyTable(row) - header = False else: - if not header: + if line_nr > 1: for idx, item in enumerate(row): try: row[idx] = str(round(float(item) / 1000000, 2)) except ValueError: pass txt_table.add_row(row) + line_nr += 1 txt_table.align["Build Number:"] = "l" with open("{0}.txt".format(file_name), "w") as txt_file: txt_file.write(str(txt_table)) diff --git a/resources/tools/presentation/input_data_parser.py b/resources/tools/presentation/input_data_parser.py index 87d822f880..7adc9c085b 100644 --- a/resources/tools/presentation/input_data_parser.py +++ b/resources/tools/presentation/input_data_parser.py @@ -21,6 +21,7 @@ import re import pandas as pd import logging +import xml.etree.ElementTree as ET from robot.api import ExecutionResult, ResultVisitor from robot import errors @@ -758,6 +759,10 @@ class InputData(object): :rtype: dict """ + tree = ET.parse(build["file-name"]) + root = tree.getroot() + generated = root.attrib["generated"] + with open(build["file-name"], 'r') as data_file: try: result = ExecutionResult(data_file) @@ -765,7 +770,7 @@ class InputData(object): logging.error("Error occurred while parsing output.xml: {0}". format(err)) return None - checker = ExecutionChecker(job=job, build=build) + checker = ExecutionChecker(job=job, build=build, generated=generated) result.visit(checker) return checker.data |