class OldBugzillaData:
dupre = re.compile(r'\*\*\* This (?:bug|issue) has been marked as a duplicate of(?: bug)? ([0-9]+) \*\*\*$')
- def __init__(self, s):
- soup = BeautifulSoup(s)
+ def __init__(self, uri):
+ soup = BeautifulSoup(wget(uri))
if soup.bugzilla:
bug = soup.bugzilla.bug or failwith(uri, "BugZilla: no bug")
def __init__(self, bug):
- self.id = bug.bug_id.string or failwith(uri, "BugZilla: no bug_id")
- self.status = bug.bug_status.string or failwith(uri, "BugZilla: no bug_status")
+ self.id = bug.bug_id.string or failwith("?", "BugZilla: no bug_id")
+ self.status = bug.bug_status.string or failwith(self.id, "BugZilla: no bug_status")
self.resolution = (bug.resolution and bug.resolution.string) or None
self.duplicate = None
break
if not self.duplicate:
- failwith(uri, "BugZilla: cannot find duplicate")
+ failwith(self.id, "BugZilla: cannot find duplicate")
class OldRemoteBugzilla(RemoteBts):
def __init__(self, cnf):
if not id: return None
uri = "%s/xml.cgi?id=%s" % (self._cnf['uri'], id)
- data = OldBugzillaData(wget(uri))
+ data = OldBugzillaData(uri)
while data.resolution == 'DUPLICATE':
uri = "%s/xml.cgi?id=%s" % (self._cnf['uri'], data.duplicate)
- data = OldBugzillaData(wget(uri))
+ data = OldBugzillaData(uri)
return data