[Piuparts-commits] [piuparts] 07/10: Add blocking count to the JSON summary format

Holger Levsen holger at moszumanska.debian.org
Mon Mar 3 02:57:25 UTC 2014


This is an automated email from the git hooks/post-receive script.

holger pushed a commit to branch develop
in repository piuparts.

commit 4fd7512b2c322dc0a2330c1f049141f0986c0d8e
Author: David Steele <dsteele at gmail.com>
Date:   Sun Feb 16 20:44:33 2014 -0500

    Add blocking count to the JSON summary format
    
    It is zero for all but 'F'ailed records. Shows the numb4er of binary
    packages which cannot be tested because of the failure. The number
    used is the highest for all tests reflecting the source package and
    reporting-section, regardless of which reporting-section url is
    used.
---
 piuparts-report.py        |  5 ++++-
 piupartslib/pkgsummary.py | 30 ++++++++++++++++++++----------
 2 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/piuparts-report.py b/piuparts-report.py
index 6e4a4e7..fdbfe25 100644
--- a/piuparts-report.py
+++ b/piuparts-report.py
@@ -1491,12 +1491,15 @@ class Section:
                     pkgname = binpkg["Package"]
                     state = self._binary_db.get_package_state(pkgname)
                     flag = self.get_flag(state)
+                    block_cnt = 0
+                    if flag == 'F':
+                        block_cnt = self._binary_db.block_count(pkgname)
                     srcpkg = self._binary_db.get_source(pkgname)
                     url = source_summ_url(master_host, self._doc_root,
                                           self._config.section, srcpkg)
 
                     pkgsummary.add_summ(summ, reporting_section, srcpkg,
-                                        flag, url)
+                                        flag, block_cnt, url)
 
             pkgsummary.summ_write(summ, summ_path)
 
diff --git a/piupartslib/pkgsummary.py b/piupartslib/pkgsummary.py
index 31cf2ad..8d1434b 100644
--- a/piupartslib/pkgsummary.py
+++ b/piupartslib/pkgsummary.py
@@ -45,14 +45,17 @@
 #   "0ad": {
 #    "overall": [
 #     "X",
+#     0,
 #     "http://localhost/piuparts/sid-fail-broken-symlinks/source/0/0ad.html"
 #    ],
 #    "stable": [
 #     "P",
+#     0,
 #     "http://localhost/piuparts/wheezy/source/0/0ad.html"
 #    ],
 #    "unstable": [
 #     "X",
+#     0,
 #     "http://localhost/piuparts/sid-fail-broken-symlinks/source/0/0ad.html"
 #    ]
 #   },
@@ -63,8 +66,9 @@
 #
 # The packages are listed by source package. E.g. "unstable" here is a
 # reporting-section (see README_server.txt). The single character flags are
-# defined in worst_flag() below. The URL is a human friendly page for
-# inspecting the results for that package/distribution.
+# defined in worst_flag() below. The number is the number of packages which
+# are blocked from testing due to a failed package. The URL is a human
+# friendly page for inspecting the results for that package/distribution.
 #
 # Binary package results are combined into source package results. The 'worst'
 # flag in the group is reported ("F" is worst overall).
@@ -86,6 +90,8 @@ class SummaryException(Exception):
 SUMMID = "Piuparts Package Test Results Summary"
 SUMMVER = "1.0"
 
+DEFSEC = 'overall'
+
 def new_summ():
     cdate_array = datetime.datetime.utcnow().ctime().split()
     utcdate = " ".join(cdate_array[:-1] + ["UTC"] + [cdate_array[-1]])
@@ -112,8 +118,8 @@ def worst_flag(*args):
 
     return(min([(sev[x],x) for x in args])[1])
 
-def add_summ(summ, rep_sec, pkg, flag, url):
-    """Add a flag/url result to summ for a package in a reporting-section"""
+def add_summ(summ, rep_sec, pkg, flag, block_cnt, url):
+    """Add a flag/count/url result to summ for a package in a reporting-section"""
 
     pdict = summ["packages"]
 
@@ -121,12 +127,16 @@ def add_summ(summ, rep_sec, pkg, flag, url):
         pdict[pkg] = {}
 
     if rep_sec in pdict[pkg]:
-        old_flag = pdict[pkg][rep_sec][0]
+        old_flag, old_cnt, old_url = pdict[pkg][rep_sec]
+
+        block_cnt = max(block_cnt, old_cnt)
 
         if old_flag != worst_flag(old_flag, flag):
-            pdict[pkg][rep_sec] = [flag, url]
+            pdict[pkg][rep_sec] = [flag, block_cnt, url]
+        else:
+            pdict[pkg][rep_sec] = [old_flag, block_cnt, old_url]
     else:
-        pdict[pkg][rep_sec] = [flag, url]
+        pdict[pkg][rep_sec] = [flag, block_cnt, url]
 
     return summ
 
@@ -137,9 +147,9 @@ def merge_summ(summ, sec_summ):
 
     for pkg in spdict:
         for rep_sec in spdict[pkg]:
-            flag, url = spdict[pkg][rep_sec]
-            add_summ(summ, rep_sec, pkg, flag, url)
-            add_summ(summ, "overall", pkg, flag, url)
+            flag, block_cnt, url = spdict[pkg][rep_sec]
+            add_summ(summ, rep_sec, pkg, flag, block_cnt, url)
+            add_summ(summ, DEFSEC, pkg, flag, block_cnt, url)
 
     return summ
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/piuparts/piuparts.git



More information about the Piuparts-commits mailing list