~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_bugtracker.py

  • Committer: John Arbash Meinel
  • Author(s): Mark Hammond
  • Date: 2008-09-09 17:02:21 UTC
  • mto: This revision was merged to the branch mainline in revision 3697.
  • Revision ID: john@arbash-meinel.com-20080909170221-svim3jw2mrz0amp3
An updated transparent icon for bzr.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2007-2010 Canonical Ltd
 
1
# Copyright (C) 2007 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
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
 
18
18
from bzrlib import bugtracker, errors, urlutils
19
 
from bzrlib.tests import TestCase, TestCaseWithMemoryTransport
 
19
from bzrlib.tests import TestCaseWithMemoryTransport
20
20
 
21
21
 
22
22
class TestGetBugURL(TestCaseWithMemoryTransport):
37
37
            return "http://bugs.com/%s" % bug_id
38
38
 
39
39
    def setUp(self):
40
 
        super(TestGetBugURL, self).setUp()
 
40
        TestCaseWithMemoryTransport.setUp(self)
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(bugtracker.tracker_registry.remove, 'transient')
 
44
        self.addCleanup(lambda:
 
45
                        bugtracker.tracker_registry.remove('transient'))
45
46
 
46
47
    def test_get_bug_url_for_transient_tracker(self):
47
48
        branch = self.make_branch('some_branch')
117
118
        self.assertEqual('http://bugs.com/1234/view.html',
118
119
                         tracker.get_bug_url('1234'))
119
120
 
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
 
 
128
121
    def test_generic_incorrect_url(self):
129
122
        branch = self.make_branch('some_branch')
130
123
        config = branch.get_config()
181
174
        self.assertRaises(
182
175
            errors.MalformedBugIdentifier, tracker.check_bug_id, 'red')
183
176
 
184
 
class TestURLParametrizedBugTracker(TestCaseWithMemoryTransport):
185
 
    """Tests for URLParametrizedBugTracker."""
 
177
 
 
178
class TestURLParametrizedIntegerBugTracker(TestCaseWithMemoryTransport):
 
179
    """Tests for TracTracker."""
186
180
 
187
181
    def setUp(self):
188
 
        super(TestURLParametrizedBugTracker, self).setUp()
 
182
        TestCaseWithMemoryTransport.setUp(self)
189
183
        self.url = 'http://twistedmatrix.com/trac'
190
 
        self.tracker = bugtracker.URLParametrizedBugTracker('some', 'ticket/')
 
184
        self.tracker = bugtracker.URLParametrizedIntegerBugTracker('some',
 
185
                                                                   'ticket/')
191
186
 
192
187
    def test_get_with_unsupported_tag(self):
193
188
        """If asked for an unrecognized or unconfigured tag, return None."""
199
194
        """If asked for a valid tag, return a tracker instance that can map bug
200
195
        IDs to <base_url>/<bug_area> + <bug_id>."""
201
196
        bugtracker.tracker_registry.register('some', self.tracker)
202
 
        self.addCleanup(bugtracker.tracker_registry.remove, 'some')
 
197
        self.addCleanup(lambda: bugtracker.tracker_registry.remove('some'))
203
198
 
204
199
        branch = self.make_branch('some_branch')
205
200
        config = branch.get_config()
209
204
            urlutils.join(self.url, 'ticket/') + '1234',
210
205
            tracker.get_bug_url('1234'))
211
206
 
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
 
 
228
207
    def test_get_bug_url_for_bad_bug(self):
229
208
        """When given a bug identifier that is invalid for Trac, get_bug_url
230
209
        should raise an error.
231
210
        """
232
211
        self.assertRaises(
233
212
            errors.MalformedBugIdentifier, self.tracker.get_bug_url, 'bad')
234
 
 
235
 
 
236
 
class TestPropertyEncoding(TestCase):
237
 
    """Tests for how the bug URLs are encoded as revision properties."""
238
 
 
239
 
    def test_encoding_one(self):
240
 
        self.assertEqual(
241
 
            'http://example.com/bugs/1 fixed',
242
 
            bugtracker.encode_fixes_bug_urls(['http://example.com/bugs/1']))
243
 
 
244
 
    def test_encoding_zero(self):
245
 
        self.assertEqual('', bugtracker.encode_fixes_bug_urls([]))
246
 
 
247
 
    def test_encoding_two(self):
248
 
        self.assertEqual(
249
 
            'http://example.com/bugs/1 fixed\n'
250
 
            'http://example.com/bugs/2 fixed',
251
 
            bugtracker.encode_fixes_bug_urls(
252
 
                ['http://example.com/bugs/1', 'http://example.com/bugs/2']))