<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>With ReStructureText format, We can convert the report to another<br>
format easily. Use option --format rst<br>
<br>
Signed-off-by: Hoang Van Tuyen
<a class="moz-txt-link-rfc2396E" href="mailto:tuyen.hoangvan@toshiba-tsdv.com"><tuyen.hoangvan@toshiba-tsdv.com></a><br>
---<br>
engine/scripts/ftc | 50
+++++++++++++++++++++++++++++++++++++++++++++++++-<br>
1 file changed, 49 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/engine/scripts/ftc b/engine/scripts/ftc<br>
index c1a2887..6b88cc7 100755<br>
--- a/engine/scripts/ftc<br>
+++ b/engine/scripts/ftc<br>
@@ -2177,6 +2177,52 @@ def gen_csv_report(header_data,
report_data, report_file):<br>
# generate lines for this report<br>
writer.writerows(report_data)<br>
<br>
+# create a rst table<br>
+def make_table(grid):<br>
+ # adjust column width size<br>
+ max_cols = [max(out) for out in map(list,
zip(*[[len(str(item)) for item in row] for row in grid]))]<br>
+ rst = table_div(max_cols, 1)<br>
+<br>
+ for i, row in enumerate(grid):<br>
+ header_flag = 0<br>
+ if i == 0 or i == len(grid)-1: header_flag = 1<br>
+ rst += normalize_row(row,max_cols)<br>
+ rst += table_div(max_cols, header_flag )<br>
+ return rst<br>
+<br>
+def table_div(max_cols, header_flag=1):<br>
+ out = ""<br>
+ if header_flag == 1:<br>
+ style = "="<br>
+ else:<br>
+ style = "-"<br>
+<br>
+ for max_col in max_cols:<br>
+ out += max_col * style + " "<br>
+<br>
+ return out + "\n"<br>
+<br>
+def normalize_row(row, max_cols):<br>
+ r = ""<br>
+ for i, max_col in enumerate(max_cols):<br>
+ r += str(row[i]) + (max_col - len(str(row[i])) + 1) * " "<br>
+ return r + "\n"<br>
+<br>
+def gen_rst_report(header_data, report_data):<br>
+ # generate header<br>
+ title = "Fuego Test Report"<br>
+ title_len = len(title)<br>
+ report = title + "\n"<br>
+ report += table_div([title_len], 1)<br>
+<br>
+ for field,val_str in header_data:<br>
+ report += ":%s: %s\n" % (field, val_str)<br>
+ report += "\n"<br>
+<br>
+ # generate lines for this report<br>
+ report += make_table(report_data)<br>
+ return report<br>
+<br>
# generate a report from run results<br>
def do_gen_report(conf, options):<br>
global quiet, verbose<br>
@@ -2198,7 +2244,7 @@ def do_gen_report(conf, options):<br>
fmt="txt"<br>
if "--format" in options:<br>
fmt = options[options.index("--format")+1]<br>
- if fmt not in ["txt","html","pdf","excel","csv"]:<br>
+ if fmt not in ["txt","html","pdf","excel","csv","rst"]:<br>
error_out("Unsupported format '%s' specified" % fmt)<br>
<br>
if "--layout" in options:<br>
@@ -2267,6 +2313,8 @@ def do_gen_report(conf, options):<br>
if fmt=="csv":<br>
gen_csv_report(header_data, report_data, report_file)<br>
sys.exit(0)<br>
+ if fmt=="rst":<br>
+ report = gen_rst_report(header_data, report_data)<br>
<br>
print report<br>
<br>
-- <br>
2.1.4<br>
<br>
</p>
<pre wrap="">_______________________________________________
Fuego mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Fuego@lists.linuxfoundation.org">Fuego@lists.linuxfoundation.org</a>
<a class="moz-txt-link-freetext" href="https://lists.linuxfoundation.org/mailman/listinfo/fuego">https://lists.linuxfoundation.org/mailman/listinfo/fuego</a></pre>
</body>
</html>