/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_http.py

  • Committer: v.ladeuil+lp at free
  • Date: 2006-10-05 09:29:48 UTC
  • mto: (2145.1.1 keepalive)
  • mto: This revision was merged to the branch mainline in revision 2146.
  • Revision ID: v.ladeuil+lp@free.fr-20061005092948-585bd3d003d5db82
Test protocol version in http responses.

* bzrlib/transport/http/_urllib2_wrappers.py:
(AbstractHTTPHandler.do_open): Catch httplib.UnknownProtocol. Add some
comments.

* bzrlib/transport/http/__init__.py:
(BadProtocolRequestHandler): New class testing protocol validity.

* bzrlib/tests/test_http.py:
(TestWallServer, TestBadStatusServer.create_transport_readonly_server,
TestInvalidStatusServer): Use a readonly server.
(TestBadProtocolServer, TestBadProtocolServer_urllib): New classes
testing protocol version validity.

* bzrlib/tests/__init__.py:
(TestCaseWithMemoryTransport.create_transport_readonly_server): New
hook allowing daughter classes to create specialized servers.

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
    )
38
38
from bzrlib.transport.http import (
39
39
    extract_auth,
 
40
    BadProtocolRequestHandler,
40
41
    BadStatusRequestHandler,
41
42
    HttpTransportBase,
42
43
    InvalidStatusRequestHandler,
255
256
class TestWallServer(object):
256
257
    """Tests exceptions during the connection phase"""
257
258
 
258
 
    def create_transport_server(self):
 
259
    def create_transport_readonly_server(self):
259
260
        return bzrlib.transport.http.HttpServer(WallRequestHandler)
260
261
 
261
262
    def test_http_has(self):
262
 
        server = self.get_server()
 
263
        server = self.get_readonly_server()
263
264
        t = self._transport(server.get_url())
264
265
        self.assertRaises(ConnectionError, t.has, 'foo/bar')
265
266
 
266
267
    def test_http_get(self):
267
 
        server = self.get_server()
 
268
        server = self.get_readonly_server()
268
269
        t = self._transport(server.get_url())
269
270
        self.assertRaises(ConnectionError, t.get, 'foo/bar')
270
271
 
284
285
class TestBadStatusServer(object):
285
286
    """Tests bad status from server."""
286
287
 
287
 
    def create_transport_server(self):
 
288
    def create_transport_readonly_server(self):
288
289
        return bzrlib.transport.http.HttpServer(BadStatusRequestHandler)
289
290
 
290
291
    def test_http_has(self):
291
 
        server = self.get_server()
 
292
        server = self.get_readonly_server()
292
293
        t = self._transport(server.get_url())
293
294
        self.assertRaises(InvalidHttpResponse, t.has, 'foo/bar')
294
295
 
295
296
    def test_http_get(self):
296
 
        server = self.get_server()
 
297
        server = self.get_readonly_server()
297
298
        t = self._transport(server.get_url())
298
299
        self.assertRaises(InvalidHttpResponse, t.get, 'foo/bar')
299
300
 
316
317
    Both implementations raises the same error as for a bad status.
317
318
    """
318
319
 
319
 
    def create_transport_server(self):
 
320
    def create_transport_readonly_server(self):
320
321
        return bzrlib.transport.http.HttpServer(InvalidStatusRequestHandler)
321
322
 
322
323
 
331
332
                                     TestInvalidStatusServer,
332
333
                                     TestCaseWithWebserver):
333
334
    """Tests InvalidStatusServer for pycurl implementation"""
 
335
 
 
336
 
 
337
class TestBadProtocolServer(object):
 
338
    """Tests bad status from server."""
 
339
 
 
340
    def create_transport_readonly_server(self):
 
341
        return bzrlib.transport.http.HttpServer(BadProtocolRequestHandler)
 
342
 
 
343
    def test_http_has(self):
 
344
        server = self.get_readonly_server()
 
345
        t = self._transport(server.get_url())
 
346
        self.assertRaises(InvalidHttpResponse, t.has, 'foo/bar')
 
347
 
 
348
    def test_http_get(self):
 
349
        server = self.get_readonly_server()
 
350
        t = self._transport(server.get_url())
 
351
        self.assertRaises(InvalidHttpResponse, t.get, 'foo/bar')
 
352
 
 
353
 
 
354
class TestBadProtocolServer_urllib(TestBadProtocolServer,
 
355
                                   TestCaseWithWebserver):
 
356
    """Tests BadProtocolServer for urllib implementation"""
 
357
 
 
358
    _transport = HttpTransport_urllib
 
359
 
 
360
# curl don't check the protocol version
 
361
#class TestBadProtocolServer_pycurl(TestWithTransport_pycurl,
 
362
#                                   TestBadProtocolServer,
 
363
#                                   TestCaseWithWebserver):
 
364
#    """Tests BadProtocolServer for pycurl implementation"""
 
365
 
 
366