classes/seppuku.bbclass: Make parsing of OpenEmbedded's bugtracker work
authorHolger Freyther <zecke@selfish.org>
Fri, 16 Mar 2007 20:16:31 +0000 (20:16 +0000)
committerHolger Freyther <zecke@selfish.org>
Fri, 16 Mar 2007 20:16:31 +0000 (20:16 +0000)
    OE's bugtracker has different classes for the buglist. I try hard
    to parse them all. All severities should be handled.

classes/seppuku.bbclass

index 8d5e234..7962cfb 100644 (file)
@@ -65,10 +65,13 @@ def seppuku_find_bug_report_old():
             HTMLParser.__init__(self)
             self.state = self.STATE_NONE
             self.bugs = []
+            self.bug  = None
 
         def handle_starttag(self, tag, attr):
             if self.state == self.STATE_NONE and tag.lower() == "tr":
-                if len(attr) == 1 and attr[0] == ('class', 'bz_normal bz_P2 '):
+                if len(attr) == 1 and attr[0][0] == 'class' and \
+                    ('bz_normal' in attr[0][1] or 'bz_blocker' in attr[0][1] or 'bz_enhancement' in attr[0][1] or 'bz_major' in attr[0][1] or 'bz_minor' in attr[0][1] or 'bz_trivial' in attr[0][1] or 'bz_critical' in attr[0][1] or 'bz_wishlist' in attr[0][1]) \
+                    and 'bz_P' in attr[0][1]:
                     self.state = self.STATE_FOUND_TR
             elif self.state == self.STATE_FOUND_TR and tag.lower() == "td":
                 self.state += 1
@@ -78,6 +81,7 @@ def seppuku_find_bug_report_old():
                 if self.state != self.STATE_NONE:
                     self.bugs.append( (self.bug,self.status) )
                 self.state = self.STATE_NONE
+                self.bug  = None
             if self.state > 1 and tag.lower() == "td":
                 self.state += 1
 
@@ -89,7 +93,11 @@ def seppuku_find_bug_report_old():
                 return
 
             if self.state == self.STATE_FOUND_NUMBER:
-                self.bug = data
+                """
+                #1995 in bugs.oe.org has [SEC] additionally to the number and we want to ignore it
+                """
+                if not self.bug:
+                    self.bug = data
             elif self.state == self.STATE_FOUND_STATUS:
                 self.status = data