[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