~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_bugtracker.py

  • Committer: Jonathan Lange
  • Date: 2007-04-20 03:40:09 UTC
  • mto: This revision was merged to the branch mainline in revision 2446.
  • Revision ID: jml@canonical.com-20070420034009-ii53ulxxwj1jnppt
Support for Bugzilla bug trackers.

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
 
18
 
import unittest
19
 
 
20
18
from bzrlib import bugtracker
21
19
from bzrlib import errors
22
20
from bzrlib.tests import TestCaseWithMemoryTransport
167
165
            bugtracker.TracTracker(self.trac_url).get_bug_url('1234'),
168
166
            tracker.get_bug_url('1234'))
169
167
 
170
 
    def test_get_bug_url_for_bad_bag(self):
171
 
        """When given a bug identifier that is invalid for Launchpad,
 
168
    def test_get_bug_url_for_bad_bug(self):
 
169
        """When given a bug identifier that is invalid for Trac, get_bug_url
 
170
        should raise an error.
 
171
        """
 
172
        tracker = bugtracker.TracTracker(self.trac_url)
 
173
        self.assertRaises(
 
174
            errors.MalformedBugIdentifier, tracker.get_bug_url, 'bad')
 
175
 
 
176
 
 
177
class TestBugzillaTracker(TestCaseWithMemoryTransport):
 
178
    """Tests for BugzillaTracker."""
 
179
 
 
180
    def setUp(self):
 
181
        TestCaseWithMemoryTransport.setUp(self)
 
182
        self.bugzilla_url = 'http://issues.apache.org/bugzilla'
 
183
 
 
184
    def test_get_bug_url(self):
 
185
        """A BugzillaTracker should map a bug id to a URL for that instance."""
 
186
        tracker = bugtracker.BugzillaTracker(self.bugzilla_url)
 
187
        self.assertEqual(
 
188
            '%s/show_bug.cgi?id=1234' % self.bugzilla_url,
 
189
            tracker.get_bug_url('1234'))
 
190
 
 
191
    def test_get_with_unsupported_tag(self):
 
192
        """If asked for an unrecognized or unconfigured tag, return None."""
 
193
        branch = self.make_branch('some_branch')
 
194
        self.assertEqual(None, bugtracker.BugzillaTracker.get('lp', branch))
 
195
        self.assertEqual(None,
 
196
                         bugtracker.BugzillaTracker.get('twisted', branch))
 
197
 
 
198
    def test_get_with_supported_tag(self):
 
199
        """If asked for a valid tag, return a matching BugzillaTracker
 
200
        instance.
 
201
        """
 
202
        branch = self.make_branch('some_branch')
 
203
        config = branch.get_config()
 
204
        config.set_user_option('bugzilla_apache_url', self.bugzilla_url)
 
205
        tracker = bugtracker.BugzillaTracker.get('apache', branch)
 
206
        self.assertEqual(
 
207
            bugtracker.BugzillaTracker(self.bugzilla_url).get_bug_url('1234'),
 
208
            tracker.get_bug_url('1234'))
 
209
 
 
210
    def test_get_bug_url_for_bad_bug(self):
 
211
        """When given a bug identifier that is invalid for Bugzilla,
172
212
        get_bug_url should raise an error.
173
213
        """
174
 
        tracker = bugtracker.TracTracker(self.trac_url)
 
214
        tracker = bugtracker.BugzillaTracker(self.bugzilla_url)
175
215
        self.assertRaises(
176
216
            errors.MalformedBugIdentifier, tracker.get_bug_url, 'bad')