← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~wgrant/launchpad/more-bugzilla-importances into lp:launchpad

 

William Grant has proposed merging lp:~wgrant/launchpad/more-bugzilla-importances into lp:launchpad.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)
Related bugs:
  #714516 UnknownRemoteImportanceError OOPS when updating remote KDE (bugzilla) bug
  https://bugs.launchpad.net/bugs/714516

For more details, see:
https://code.launchpad.net/~wgrant/launchpad/more-bugzilla-importances/+merge/50877

This branch adds a few missing Bugzilla status and importance mappings, and removes one fallback:

 - qa.openoffice.org has dropped the severity field, using only P1-P5 importance.
 - bugs.kde.org has three new severities: crash, grave, and wishlist.
 - bugs.kde.org has renamed the NEEDINFO status to NEEDSINFO.
 - CLOSED DUPLICATE now maps to Invalid, as it did until recently.
 - Unknown CLOSED/RESOLVED/VERIFIED values no longer explicitly map to Unknown, instead raising an exception that is logged like any other unknown status.
-- 
https://code.launchpad.net/~wgrant/launchpad/more-bugzilla-importances/+merge/50877
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~wgrant/launchpad/more-bugzilla-importances into lp:launchpad.
=== modified file 'lib/lp/bugs/doc/externalbugtracker-bugzilla.txt'
--- lib/lp/bugs/doc/externalbugtracker-bugzilla.txt	2011-01-19 00:10:48 +0000
+++ lib/lp/bugs/doc/externalbugtracker-bugzilla.txt	2011-02-23 06:55:01 +0000
@@ -282,6 +282,8 @@
     'Incomplete'
     >>> external_bugzilla.convertRemoteStatus('NEEDINFO_REPORTER').title
     'Incomplete'
+    >>> external_bugzilla.convertRemoteStatus('NEEDSINFO').title
+    'Incomplete'
     >>> external_bugzilla.convertRemoteStatus('MODIFIED').title
     'Fix Committed'
     >>> external_bugzilla.convertRemoteStatus('UPSTREAM').title
@@ -301,6 +303,8 @@
     "Won't Fix"
     >>> external_bugzilla.convertRemoteStatus('CLOSED INVALID').title
     'Invalid'
+    >>> external_bugzilla.convertRemoteStatus('CLOSED DUPLICATE').title
+    'Invalid'
     >>> external_bugzilla.convertRemoteStatus('CLOSED UPSTREAM').title
     "Won't Fix"
 
@@ -311,6 +315,10 @@
     Traceback (most recent call last):
       ...
     UnknownRemoteStatusError: FOO
+    >>> external_bugzilla.convertRemoteStatus('CLOSED BAR').title
+    Traceback (most recent call last):
+      ...
+    UnknownRemoteStatusError: CLOSED BAR
 
 
 Importance Conversion
@@ -341,6 +349,10 @@
     'High'
     >>> external_bugzilla.convertRemoteImportance('MAJOR').title
     'High'
+    >>> external_bugzilla.convertRemoteImportance('CRASH').title
+    'High'
+    >>> external_bugzilla.convertRemoteImportance('GRAVE').title
+    'High'
 
     >>> external_bugzilla.convertRemoteImportance('URGENT NORMAL').title
     'Medium'
@@ -367,6 +379,8 @@
     'Wishlist'
     >>> external_bugzilla.convertRemoteImportance('ENHANCEMENT').title
     'Wishlist'
+    >>> external_bugzilla.convertRemoteImportance('WISHLIST').title
+    'Wishlist'
 
     >>> external_bugzilla.convertRemoteImportance('IMMEDIATE').title
     'Critical'
@@ -379,6 +393,17 @@
     >>> external_bugzilla.convertRemoteImportance('LOW').title
     'Low'
 
+    >>> external_bugzilla.convertRemoteImportance('P5').title
+    'Critical'
+    >>> external_bugzilla.convertRemoteImportance('P4').title
+    'High'
+    >>> external_bugzilla.convertRemoteImportance('P3').title
+    'Medium'
+    >>> external_bugzilla.convertRemoteImportance('P2').title
+    'Low'
+    >>> external_bugzilla.convertRemoteImportance('P1').title
+    'Low'
+
 Some bugzillas don't provide a value, resulting in blank strings for
 priority and severity.  We simply leave the importance unknown in this
 case.

=== modified file 'lib/lp/bugs/externalbugtracker/bugzilla.py'
--- lib/lp/bugs/externalbugtracker/bugzilla.py	2011-02-17 18:29:23 +0000
+++ lib/lp/bugs/externalbugtracker/bugzilla.py	2011-02-23 06:55:01 +0000
@@ -228,14 +228,22 @@
         'critical': BugTaskImportance.CRITICAL,
         'immediate': BugTaskImportance.CRITICAL,
         'urgent': BugTaskImportance.CRITICAL,
+        'p5': BugTaskImportance.CRITICAL,
+        'crash': BugTaskImportance.HIGH,
+        'grave': BugTaskImportance.HIGH,
         'major': BugTaskImportance.HIGH,
         'high': BugTaskImportance.HIGH,
+        'p4': BugTaskImportance.HIGH,
         'normal': BugTaskImportance.MEDIUM,
         'medium': BugTaskImportance.MEDIUM,
+        'p3': BugTaskImportance.MEDIUM,
         'minor': BugTaskImportance.LOW,
         'low': BugTaskImportance.LOW,
         'trivial': BugTaskImportance.LOW,
+        'p2': BugTaskImportance.LOW,
+        'p1': BugTaskImportance.LOW,
         'enhancement': BugTaskImportance.WISHLIST,
+        'wishlist': BugTaskImportance.WISHLIST,
         }
 
     def convertRemoteImportance(self, remote_importance):
@@ -254,7 +262,7 @@
     _status_lookup = LookupTree(
         ('ASSIGNED', 'ON_DEV', 'FAILS_QA', 'STARTED',
          BugTaskStatus.INPROGRESS),
-        ('NEEDINFO', 'NEEDINFO_REPORTER', 'WAITING', 'SUSPENDED',
+        ('NEEDINFO', 'NEEDINFO_REPORTER', 'NEEDSINFO', 'WAITING', 'SUSPENDED',
          'PLEASETEST',
          BugTaskStatus.INCOMPLETE),
         ('PENDINGUPLOAD', 'MODIFIED', 'RELEASE_PENDING', 'ON_QA',
@@ -271,9 +279,8 @@
                 ('OBSOLETE', 'INSUFFICIENT_DATA', 'INCOMPLETE', 'EXPIRED',
                  BugTaskStatus.EXPIRED),
                 ('INVALID', 'WORKSFORME', 'NOTABUG', 'CANTFIX',
-                 'UNREPRODUCIBLE',
-                 BugTaskStatus.INVALID),
-                (BugTaskStatus.UNKNOWN,))),
+                 'UNREPRODUCIBLE', 'DUPLICATE',
+                 BugTaskStatus.INVALID))),
         ('REOPENED', 'NEW', 'UPSTREAM', 'DEFERRED',
          BugTaskStatus.CONFIRMED),
         ('UNCONFIRMED', BugTaskStatus.NEW),