[Fuego] [PATCH 2/2] ftc: gen_report: Add new functions for getting data to, generate the report
Hoang Van Tuyen
tuyen.hoangvan at toshiba-tsdv.com
Thu Feb 22 10:51:06 UTC 2018
Hello Tim,
I am working on gen-report feature (support several other format like
html, pdf, ...).
The attached patch defines two new functions used for generating data
for the report.
Could you please check it?
===========================================================================
For reusability, the two functions have been defined with purpose like
below:
gen_header_for_report: Get value for fields in the header_fields
(test, board,
report_date, ...).
gen_data_for_report: Get value for fields in the fields variable
(test_name,
spec, timestamp, ...).
This commit also modifies gen_text_report function to compatible with
defining the two new funtions.
Also, correct some grammar mistakes.
Signed-off-by: Hoang Van Tuyen <tuyen.hoangvan at toshiba-tsdv.com>
---
engine/scripts/ftc | 78
++++++++++++++++++++++++++++++++----------------------
1 file changed, 47 insertions(+), 31 deletions(-)
diff --git a/engine/scripts/ftc b/engine/scripts/ftc
index 44e4da7..a2f5a78 100755
--- a/engine/scripts/ftc
+++ b/engine/scripts/ftc
@@ -71,7 +71,7 @@ def pvar(name):
quiet = 0
verbose = 0
-use_statusouput = 1
+use_statusoutput = 1
server = jenkins.Jenkins('http://localhost:8080/fuego')
# keep configuration file in /fuego-ro/conf area
@@ -1745,7 +1745,7 @@ class where_class:
found = False
try:
run_value = run.__dict__[self.field_name]
- found = true
+ found = True
except:
pass
@@ -1849,13 +1849,8 @@ def do_list_runs(conf, options):
sys.exit(0)
-def gen_text_report(run_list, run_map, header_fields, fields):
- # generate header
- ddash_line="="*70 + "\n"
- report = ddash_line
- title = "Fuego Test Report"
- report += " **** %s ****\n" % title
- report_date = time.strftime("%Y-%m-%d_%H:%M:%S")
+def gen_header_for_report(run_list, run_map, header_fields, fields):
+ header_report = ""
for field in header_fields:
if field=="report_date":
@@ -1875,22 +1870,14 @@ def gen_text_report(run_list, run_map,
header_fields, fields):
else:
for value in value_list[1:]:
val_str += ", "+value
+ header_report += " %-20s: %s\n" % (field, val_str)
- line = " %-20s: %s\n" % (field, val_str)
- report += line
- report += ddash_line
+ return header_report
+def gen_data_for_report(run_list, run_map, header_fields, fields):
+ data_to_report = []
# generate list
- # start with a header line
- dash_line = "-"*(21*len(fields)+2) + "\n"
- report += dash_line
- line = " "
- for field in fields:
- line += "%-20s " % field
- report += line + "\n"
- report += dash_line
-
# now loop over the runs, printing the requested report fields
# if tguid is a field, we'll print a line for each tguid
# otherwise, it's a line per test
@@ -1921,10 +1908,6 @@ def gen_text_report(run_list, run_map,
header_fields, fields):
continue
# format each column per row (ie per line)
- line = " "
- start_sep = " "
- mid_sep = " "
- end_sep = ""
pos = 0
for field in fields:
if field=="tguid":
@@ -1937,15 +1920,48 @@ def gen_text_report(run_list, run_map,
header_fields, fields):
tguid_name = ""
value = run.get_field(field, tguid_name)
if pos==0:
- line += "%-20s%s" % (value, start_sep)
+ data_to_report.append((value,field))
else:
- line += "%-20s" % (value)
if pos<len(fields):
- line += mid_sep
- else:
- line += end_sep
+ data_to_report.append((value,field))
pos += 1
- report += line + "\n"
+ return data_to_report
+
+def gen_text_report(run_list, run_map, header_fields, fields):
+ #get data for report
+ header_report = gen_header_for_report(run_list, run_map,
header_fields, fields)
+ data_to_report = gen_data_for_report(run_list, run_map,
header_fields, fields)
+
+ # generate header
+ ddash_line="="*70 + "\n"
+ report = ddash_line
+ title = "Fuego Test Report"
+ report += " **** %s ****\n" % title
+ report_date = time.strftime("%Y-%m-%d_%H:%M:%S")
+
+ report += header_report
+ report += ddash_line
+
+ # generate list
+
+ # start with a header line
+ dash_line = "-"*(21*len(fields)+2) + "\n"
+ report += dash_line
+ report += " "
+ for field in fields:
+ report += "%-20s " % field
+ report += "\n" + dash_line
+
+ # now loop over the runs, printing the requested report fields
+ # format each column per row (ie per line)
+ for i in range(0,len(data_to_report)):
+ if (data_to_report[i][1] == "test_name"):
+ report += " %-20s" % (data_to_report[i][0])
+ else:
+ if (data_to_report[i][1] == "result"):
+ report += " %-20s\n" % (data_to_report[i][0])
+ else:
+ report += " %-20s" % (data_to_report[i][0])
report += dash_line
--
2.1.4
--
================================================================
Hoang Van Tuyen (Mr.)
TOSHIBA SOFTWARE DEVELOPMENT (VIETNAM) CO., LTD.
16th Floor, VIT Building, 519 Kim Ma Str., Ba Dinh Dist., Hanoi, Vietnam
Tel: 84-4-22208801 (Company) - Ext.251
Fax: 84-4-22208802 (Company)
Email: tuyen.hoangvan at toshiba-tsdv.com
================================================================
-------------- next part --------------
From 1dd536ae895491ad8169b19e6651d475bae6498a Mon Sep 17 00:00:00 2001
From: Hoang Van Tuyen <tuyen.hoangvan at toshiba-tsdv.com>
Date: Thu, 22 Feb 2018 17:18:40 +0700
Subject: [PATCH 2/2] ftc: gen_report: Add new functions for getting data to
generate the report
For reusability, the two functions have been defined with purpose like below:
gen_header_for_report: Get value for fields in the header_fields (test, board,
report_date, ...).
gen_data_for_report: Get value for fields in the fields variable (test_name,
spec, timestamp, ...).
This commit also modifies gen_text_report function to compatible with
defining the two new funtions.
Also, correct some grammar mistakes.
Signed-off-by: Hoang Van Tuyen <tuyen.hoangvan at toshiba-tsdv.com>
---
engine/scripts/ftc | 78 ++++++++++++++++++++++++++++++++----------------------
1 file changed, 47 insertions(+), 31 deletions(-)
diff --git a/engine/scripts/ftc b/engine/scripts/ftc
index 44e4da7..a2f5a78 100755
--- a/engine/scripts/ftc
+++ b/engine/scripts/ftc
@@ -71,7 +71,7 @@ def pvar(name):
quiet = 0
verbose = 0
-use_statusouput = 1
+use_statusoutput = 1
server = jenkins.Jenkins('http://localhost:8080/fuego')
# keep configuration file in /fuego-ro/conf area
@@ -1745,7 +1745,7 @@ class where_class:
found = False
try:
run_value = run.__dict__[self.field_name]
- found = true
+ found = True
except:
pass
@@ -1849,13 +1849,8 @@ def do_list_runs(conf, options):
sys.exit(0)
-def gen_text_report(run_list, run_map, header_fields, fields):
- # generate header
- ddash_line="="*70 + "\n"
- report = ddash_line
- title = "Fuego Test Report"
- report += " **** %s ****\n" % title
- report_date = time.strftime("%Y-%m-%d_%H:%M:%S")
+def gen_header_for_report(run_list, run_map, header_fields, fields):
+ header_report = ""
for field in header_fields:
if field=="report_date":
@@ -1875,22 +1870,14 @@ def gen_text_report(run_list, run_map, header_fields, fields):
else:
for value in value_list[1:]:
val_str += ", "+value
+ header_report += " %-20s: %s\n" % (field, val_str)
- line = " %-20s: %s\n" % (field, val_str)
- report += line
- report += ddash_line
+ return header_report
+def gen_data_for_report(run_list, run_map, header_fields, fields):
+ data_to_report = []
# generate list
- # start with a header line
- dash_line = "-"*(21*len(fields)+2) + "\n"
- report += dash_line
- line = " "
- for field in fields:
- line += "%-20s " % field
- report += line + "\n"
- report += dash_line
-
# now loop over the runs, printing the requested report fields
# if tguid is a field, we'll print a line for each tguid
# otherwise, it's a line per test
@@ -1921,10 +1908,6 @@ def gen_text_report(run_list, run_map, header_fields, fields):
continue
# format each column per row (ie per line)
- line = " "
- start_sep = " "
- mid_sep = " "
- end_sep = ""
pos = 0
for field in fields:
if field=="tguid":
@@ -1937,15 +1920,48 @@ def gen_text_report(run_list, run_map, header_fields, fields):
tguid_name = ""
value = run.get_field(field, tguid_name)
if pos==0:
- line += "%-20s%s" % (value, start_sep)
+ data_to_report.append((value,field))
else:
- line += "%-20s" % (value)
if pos<len(fields):
- line += mid_sep
- else:
- line += end_sep
+ data_to_report.append((value,field))
pos += 1
- report += line + "\n"
+ return data_to_report
+
+def gen_text_report(run_list, run_map, header_fields, fields):
+ #get data for report
+ header_report = gen_header_for_report(run_list, run_map, header_fields, fields)
+ data_to_report = gen_data_for_report(run_list, run_map, header_fields, fields)
+
+ # generate header
+ ddash_line="="*70 + "\n"
+ report = ddash_line
+ title = "Fuego Test Report"
+ report += " **** %s ****\n" % title
+ report_date = time.strftime("%Y-%m-%d_%H:%M:%S")
+
+ report += header_report
+ report += ddash_line
+
+ # generate list
+
+ # start with a header line
+ dash_line = "-"*(21*len(fields)+2) + "\n"
+ report += dash_line
+ report += " "
+ for field in fields:
+ report += "%-20s " % field
+ report += "\n" + dash_line
+
+ # now loop over the runs, printing the requested report fields
+ # format each column per row (ie per line)
+ for i in range(0,len(data_to_report)):
+ if (data_to_report[i][1] == "test_name"):
+ report += " %-20s" % (data_to_report[i][0])
+ else:
+ if (data_to_report[i][1] == "result"):
+ report += " %-20s\n" % (data_to_report[i][0])
+ else:
+ report += " %-20s" % (data_to_report[i][0])
report += dash_line
--
2.1.4
-------------- next part --------------
--
This mail was scanned by BitDefender
For more information please visit http://www.bitdefender.com
More information about the Fuego
mailing list