~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_http.py

  • Committer: John Arbash Meinel
  • Date: 2006-10-06 07:14:31 UTC
  • mto: This revision was merged to the branch mainline in revision 2071.
  • Revision ID: john@arbash-meinel.com-20061006071431-90c2cbe88302e462
don't import errors, and try to lazy import logging in bzrlib.trace

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
 
20
20
# TODO: Should be renamed to bzrlib.transport.http.tests?
21
21
 
 
22
import socket
 
23
 
22
24
import bzrlib
23
25
from bzrlib.errors import DependencyNotPresent
24
26
from bzrlib.tests import TestCase, TestSkipped
68
70
        self.assertRaises(ValueError,
69
71
            t.abspath,
70
72
            '.bzr/')
71
 
        self.assertRaises(ValueError,
72
 
            t.abspath,
73
 
            '/.bzr')
74
73
 
75
74
    def test_http_root_urls(self):
76
75
        """Construction of URLs from server root"""
135
134
        TestCaseWithWebserver.setUp(self)
136
135
        self._prep_tree()
137
136
 
 
137
    def test_has_on_bogus_host(self):
 
138
        import urllib2
 
139
        # Get a random address, so that we can be sure there is no
 
140
        # http handler there.
 
141
        s = socket.socket()
 
142
        s.bind(('localhost', 0))
 
143
        t = self._transport('http://%s:%s/' % s.getsockname())
 
144
        self.assertRaises(urllib2.URLError, t.has, 'foo/bar')
138
145
 
139
146
 
140
147
class TestHttpConnections_pycurl(TestCaseWithWebserver, TestHttpMixins):
171
178
 
172
179
    def test_offsets_to_ranges_simple(self):
173
180
        to_range = HttpTransportBase.offsets_to_ranges
174
 
        ranges, tail = to_range([(10, 1)])
 
181
        ranges = to_range([(10, 1)])
175
182
        self.assertEqual([[10, 10]], ranges)
176
 
        self.assertEqual(0, tail)
177
 
 
178
 
        ranges, tail = to_range([(0, 1), (1, 1)])
179
 
        self.assertEqual([[0, 1]], ranges)
180
 
        self.assertEqual(0, tail)
181
 
 
182
 
        ranges, tail = to_range([(1, 1), (0, 1)])
183
 
        self.assertEqual([[0, 1]], ranges)
184
 
        self.assertEqual(0, tail)
 
183
 
 
184
        ranges = to_range([(0, 1), (1, 1)])
 
185
        self.assertEqual([[0, 1]], ranges)
 
186
 
 
187
        ranges = to_range([(1, 1), (0, 1)])
 
188
        self.assertEqual([[0, 1]], ranges)
185
189
 
186
190
    def test_offset_to_ranges_overlapped(self):
187
191
        to_range = HttpTransportBase.offsets_to_ranges
188
192
 
189
 
        ranges, tail = to_range([(10, 1), (20, 2), (22, 5)])
190
 
        self.assertEquals(tuple(ranges[0]), (10, 10))
191
 
        self.assertEquals(tuple(ranges[1]), (20, 26))
192
 
        self.assertEquals(tail, 0)
193
 
 
194
 
        ranges, tail = to_range([(10, 1), (11, 2), (22, 5), (-4, 4)])
195
 
        self.assertEquals(tuple(ranges[0]), (10, 12))
196
 
        self.assertEquals(tuple(ranges[1]), (22, 26))
197
 
        self.assertEquals(tail, 4)
198
 
 
199
 
    def test_offset_to_ranges_tail(self):
200
 
        to_range = HttpTransportBase.offsets_to_ranges
201
 
 
202
 
        ranges, tail = to_range([(-4, 4), (-8, 8)])
203
 
        self.assertEquals(tuple(ranges), ())
204
 
        self.assertEquals(tail, 8)
205
 
 
206
 
    def test_offset_to_ranges_fudge(self):
207
 
        to_range = HttpTransportBase.offsets_to_ranges
208
 
 
209
 
        ranges, tail = to_range([(10, 1), (20, 2)], fudge_factor=9)
210
 
        self.assertEquals(tuple(ranges[0]), (10, 21))
211
 
        self.assertEquals(len(ranges), 1)
212
 
        self.assertEquals(tail, 0)
213
 
 
214
 
        ranges, tail = to_range([(10, 1), (20, 2)], fudge_factor=8)
215
 
        self.assertEquals(tuple(ranges[0]), (10, 10))
216
 
        self.assertEquals(tuple(ranges[1]), (20, 21))
217
 
        self.assertEquals(tail, 0)
 
193
        ranges = to_range([(10, 1), (20, 2), (22, 5)])
 
194
        self.assertEqual([[10, 10], [20, 26]], ranges)
 
195
 
 
196
        ranges = to_range([(10, 1), (11, 2), (22, 5)])
 
197
        self.assertEqual([[10, 12], [22, 26]], ranges)
218
198
 
219
199
 
220
200
class TestRangeHeader(TestCase):
225
205
        self.assertEqual(value, range_header(ranges, tail))
226
206
 
227
207
    def test_range_header_single(self):
228
 
        self.check_header('bytes=0-9', ranges=[[0,9]])
229
 
        self.check_header('bytes=100-109', ranges=[[100,109]])
 
208
        self.check_header('0-9', ranges=[[0,9]])
 
209
        self.check_header('100-109', ranges=[[100,109]])
230
210
 
231
211
    def test_range_header_tail(self):
232
 
        self.check_header('bytes=-10', tail=10)
233
 
        self.check_header('bytes=-50', tail=50)
 
212
        self.check_header('-10', tail=10)
 
213
        self.check_header('-50', tail=50)
234
214
 
235
215
    def test_range_header_multi(self):
236
 
        self.check_header('bytes=0-9,100-200,300-5000',
 
216
        self.check_header('0-9,100-200,300-5000',
237
217
                          ranges=[(0,9), (100, 200), (300,5000)])
238
218
 
239
219
    def test_range_header_mixed(self):
240
 
        self.check_header('bytes=0-9,300-5000,-50',
 
220
        self.check_header('0-9,300-5000,-50',
241
221
                          ranges=[(0,9), (300,5000)],
242
222
                          tail=50)