~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_bugtracker.py

  • Committer: Vincent Ladeuil
  • Date: 2017-01-30 14:30:10 UTC
  • mfrom: (6615.3.7 merges)
  • mto: This revision was merged to the branch mainline in revision 6621.
  • Revision ID: v.ladeuil+lp@free.fr-20170130143010-p31t1ranfeqbaeki
Merge  2.7 into trunk including fix for bug #1657238

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2007 Canonical Ltd
 
1
# Copyright (C) 2007-2010 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
37
37
            return "http://bugs.com/%s" % bug_id
38
38
 
39
39
    def setUp(self):
40
 
        TestCaseWithMemoryTransport.setUp(self)
 
40
        super(TestGetBugURL, self).setUp()
41
41
        self.tracker_type = TestGetBugURL.TransientTracker
42
42
        self.tracker_type.log = []
43
43
        bugtracker.tracker_registry.register('transient', self.tracker_type)
44
 
        self.addCleanup(lambda:
45
 
                        bugtracker.tracker_registry.remove('transient'))
 
44
        self.addCleanup(bugtracker.tracker_registry.remove, 'transient')
46
45
 
47
46
    def test_get_bug_url_for_transient_tracker(self):
48
47
        branch = self.make_branch('some_branch')
118
117
        self.assertEqual('http://bugs.com/1234/view.html',
119
118
                         tracker.get_bug_url('1234'))
120
119
 
 
120
    def test_generic_registered_non_integer(self):
 
121
        branch = self.make_branch('some_branch')
 
122
        config = branch.get_config()
 
123
        config.set_user_option('bugtracker_foo_url', 'http://bugs.com/{id}/view.html')
 
124
        tracker = bugtracker.tracker_registry.get_tracker('foo', branch)
 
125
        self.assertEqual('http://bugs.com/ABC-1234/view.html',
 
126
                         tracker.get_bug_url('ABC-1234'))
 
127
 
121
128
    def test_generic_incorrect_url(self):
122
129
        branch = self.make_branch('some_branch')
123
130
        config = branch.get_config()
174
181
        self.assertRaises(
175
182
            errors.MalformedBugIdentifier, tracker.check_bug_id, 'red')
176
183
 
177
 
 
178
 
class TestURLParametrizedIntegerBugTracker(TestCaseWithMemoryTransport):
179
 
    """Tests for TracTracker."""
 
184
class TestURLParametrizedBugTracker(TestCaseWithMemoryTransport):
 
185
    """Tests for URLParametrizedBugTracker."""
180
186
 
181
187
    def setUp(self):
182
 
        TestCaseWithMemoryTransport.setUp(self)
 
188
        super(TestURLParametrizedBugTracker, self).setUp()
183
189
        self.url = 'http://twistedmatrix.com/trac'
184
 
        self.tracker = bugtracker.URLParametrizedIntegerBugTracker('some',
185
 
                                                                   'ticket/')
 
190
        self.tracker = bugtracker.URLParametrizedBugTracker('some', 'ticket/')
186
191
 
187
192
    def test_get_with_unsupported_tag(self):
188
193
        """If asked for an unrecognized or unconfigured tag, return None."""
194
199
        """If asked for a valid tag, return a tracker instance that can map bug
195
200
        IDs to <base_url>/<bug_area> + <bug_id>."""
196
201
        bugtracker.tracker_registry.register('some', self.tracker)
197
 
        self.addCleanup(lambda: bugtracker.tracker_registry.remove('some'))
 
202
        self.addCleanup(bugtracker.tracker_registry.remove, 'some')
198
203
 
199
204
        branch = self.make_branch('some_branch')
200
205
        config = branch.get_config()
204
209
            urlutils.join(self.url, 'ticket/') + '1234',
205
210
            tracker.get_bug_url('1234'))
206
211
 
 
212
    def test_get_bug_url_for_integer_id(self):
 
213
        self.tracker.check_bug_id('1234')
 
214
 
 
215
    def test_get_bug_url_for_non_integer_id(self):
 
216
        self.tracker.check_bug_id('ABC-1234')
 
217
 
 
218
 
 
219
class TestURLParametrizedIntegerBugTracker(TestCaseWithMemoryTransport):
 
220
    """Tests for URLParametrizedIntegerBugTracker."""
 
221
 
 
222
    def setUp(self):
 
223
        super(TestURLParametrizedIntegerBugTracker, self).setUp()
 
224
        self.url = 'http://twistedmatrix.com/trac'
 
225
        self.tracker = bugtracker.URLParametrizedIntegerBugTracker('some',
 
226
                                                                   'ticket/')
 
227
 
207
228
    def test_get_bug_url_for_bad_bug(self):
208
229
        """When given a bug identifier that is invalid for Trac, get_bug_url
209
230
        should raise an error.