~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/bugtracker.py

  • Committer: Jonathan Lange
  • Date: 2007-04-23 05:59:29 UTC
  • mto: This revision was merged to the branch mainline in revision 2446.
  • Revision ID: jml@canonical.com-20070423055929-chgdr92da63lhcri
Parametrize URLParametrizedIntegerBugTracker even further so we don't need to
subclass.

Show diffs side-by-side

added added

removed removed

Lines of Context:
147
147
    'squid' or 'apache').
148
148
    """
149
149
 
150
 
    type_name = None
151
 
 
152
 
    @classmethod
153
 
    def get(klass, abbreviation, branch):
 
150
    def get(self, abbreviation, branch):
154
151
        config = branch.get_config()
155
152
        url = config.get_user_option(
156
 
            "%s_%s_url" % (klass.type_name, abbreviation))
 
153
            "%s_%s_url" % (self.type_name, abbreviation))
157
154
        if url is None:
158
155
            return None
159
 
        return klass(url)
160
 
 
161
 
    def __init__(self, url):
162
156
        self._base_url = url
163
 
 
164
 
 
165
 
class TracTracker(URLParametrizedIntegerBugTracker):
166
 
    """A Trac instance."""
167
 
 
168
 
    type_name = 'trac'
 
157
        return self
 
158
 
 
159
    def __init__(self, type_name, bug_area):
 
160
        self.type_name = type_name
 
161
        self._bug_area = bug_area
169
162
 
170
163
    def _get_bug_url(self, bug_id):
171
164
        """Return a URL for a bug on this Trac instance."""
172
 
        return urlutils.join(self._base_url, 'ticket', bug_id)
173
 
 
174
 
tracker_registry.register('trac', TracTracker)
175
 
 
176
 
 
177
 
class BugzillaTracker(URLParametrizedIntegerBugTracker):
178
 
    """A Bugzilla instance."""
179
 
 
180
 
    type_name = 'bugzilla'
181
 
 
182
 
    def _get_bug_url(self, bug_id):
183
 
        """Return a URL for a bug on this Bugzilla instance."""
184
 
        return "%s/show_bug.cgi?id=%s" % (self._base_url, bug_id)
185
 
 
186
 
tracker_registry.register('bugzilla', BugzillaTracker)
 
165
        return urlutils.join(self._base_url, self._bug_area) + str(bug_id)
 
166
 
 
167
 
 
168
tracker_registry.register(
 
169
    'trac', URLParametrizedIntegerBugTracker('trac', 'ticket/'))
 
170
 
 
171
tracker_registry.register(
 
172
    'bugzilla',
 
173
    URLParametrizedIntegerBugTracker('bugzilla', 'show_bug.cgi?id='))