Mercurial > hg-stable
changeset 7019:6b1ece890f9a
Add support for Bugzilla 3.0 series to bugzilla hook.
The only difference is 'fieldid' in table 'fielddefs' got renamed
to 'id' for 3.0.
author | Jim Hague <jim.hague@acm.org> |
---|---|
date | Fri, 29 Aug 2008 20:36:55 +0100 |
parents | 0b72836b0384 |
children | 5e9965407d53 |
files | hgext/bugzilla.py |
diffstat | 1 files changed, 24 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/bugzilla.py Wed Sep 10 13:52:33 2008 +0200 +++ b/hgext/bugzilla.py Fri Aug 29 20:36:55 2008 +0100 @@ -80,11 +80,7 @@ self.conn = MySQLdb.connect(host=host, user=user, passwd=passwd, db=db, connect_timeout=timeout) self.cursor = self.conn.cursor() - self.run('select fieldid from fielddefs where name = "longdesc"') - ids = self.cursor.fetchall() - if len(ids) != 1: - raise util.Abort(_('unknown database schema')) - self.longdesc_id = ids[0][0] + self.longdesc_id = self.get_longdesc_id() self.user_ids = {} def run(self, *args, **kwargs): @@ -96,6 +92,14 @@ self.ui.note(_('failed query: %s %s\n') % (args, kwargs)) raise + def get_longdesc_id(self): + '''get identity of longdesc field''' + self.run('select fieldid from fielddefs where name = "longdesc"') + ids = self.cursor.fetchall() + if len(ids) != 1: + raise util.Abort(_('unknown database schema')) + return ids[0][0] + def filter_real_bug_ids(self, ids): '''filter not-existing bug ids from list.''' self.run('select bug_id from bugs where bug_id in %s' % buglist(ids)) @@ -182,11 +186,26 @@ values (%s, %s, %s, %s)''', (bugid, userid, now, self.longdesc_id)) +class bugzilla_3_0(bugzilla_2_16): + '''support for bugzilla 3.0 series.''' + + def __init__(self, ui): + bugzilla_2_16.__init__(self, ui) + + def get_longdesc_id(self): + '''get identity of longdesc field''' + self.run('select id from fielddefs where name = "longdesc"') + ids = self.cursor.fetchall() + if len(ids) != 1: + raise util.Abort(_('unknown database schema')) + return ids[0][0] + class bugzilla(object): # supported versions of bugzilla. different versions have # different schemas. _versions = { '2.16': bugzilla_2_16, + '3.0': bugzilla_3_0 } _default_bug_re = (r'bugs?\s*,?\s*(?:#|nos?\.?|num(?:ber)?s?)?\s*'