~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_http.py

  • Committer: Martin Pool
  • Date: 2009-09-14 01:48:28 UTC
  • mfrom: (4685 +trunk)
  • mto: This revision was merged to the branch mainline in revision 4688.
  • Revision ID: mbp@sourcefrog.net-20090914014828-ydr9rlkdfq2sv57z
Merge news

Show diffs side-by-side

added added

removed removed

Lines of Context:
304
304
 
305
305
        server = http_server.HttpServer(BogusRequestHandler)
306
306
        try:
307
 
            self.assertRaises(httplib.UnknownProtocol,server.setUp)
 
307
            self.assertRaises(httplib.UnknownProtocol, server.setUp)
308
308
        except:
309
309
            server.tearDown()
310
310
            self.fail('HTTP Server creation did not raise UnknownProtocol')
312
312
    def test_force_invalid_protocol(self):
313
313
        server = http_server.HttpServer(protocol_version='HTTP/0.1')
314
314
        try:
315
 
            self.assertRaises(httplib.UnknownProtocol,server.setUp)
 
315
            self.assertRaises(httplib.UnknownProtocol, server.setUp)
316
316
        except:
317
317
            server.tearDown()
318
318
            self.fail('HTTP Server creation did not raise UnknownProtocol')
320
320
    def test_server_start_and_stop(self):
321
321
        server = http_server.HttpServer()
322
322
        server.setUp()
323
 
        self.assertTrue(server._http_running)
324
 
        server.tearDown()
 
323
        try:
 
324
            self.assertTrue(server._http_running)
 
325
        finally:
 
326
            server.tearDown()
325
327
        self.assertFalse(server._http_running)
326
328
 
327
329
    def test_create_http_server_one_zero(self):
330
332
            protocol_version = 'HTTP/1.0'
331
333
 
332
334
        server = http_server.HttpServer(RequestHandlerOneZero)
333
 
        server.setUp()
334
 
        self.addCleanup(server.tearDown)
 
335
        self.start_server(server)
335
336
        self.assertIsInstance(server._httpd, http_server.TestingHTTPServer)
336
337
 
337
338
    def test_create_http_server_one_one(self):
340
341
            protocol_version = 'HTTP/1.1'
341
342
 
342
343
        server = http_server.HttpServer(RequestHandlerOneOne)
343
 
        server.setUp()
344
 
        self.addCleanup(server.tearDown)
 
344
        self.start_server(server)
345
345
        self.assertIsInstance(server._httpd,
346
346
                              http_server.TestingThreadingHTTPServer)
347
347
 
352
352
 
353
353
        server = http_server.HttpServer(RequestHandlerOneZero,
354
354
                                        protocol_version='HTTP/1.1')
355
 
        server.setUp()
356
 
        self.addCleanup(server.tearDown)
 
355
        self.start_server(server)
357
356
        self.assertIsInstance(server._httpd,
358
357
                              http_server.TestingThreadingHTTPServer)
359
358
 
364
363
 
365
364
        server = http_server.HttpServer(RequestHandlerOneOne,
366
365
                                        protocol_version='HTTP/1.0')
367
 
        server.setUp()
368
 
        self.addCleanup(server.tearDown)
 
366
        self.start_server(server)
369
367
        self.assertIsInstance(server._httpd,
370
368
                              http_server.TestingHTTPServer)
371
369
 
431
429
    def test_http_impl_urls(self):
432
430
        """There are servers which ask for particular clients to connect"""
433
431
        server = self._server()
 
432
        server.setUp()
434
433
        try:
435
 
            server.setUp()
436
434
            url = server.get_url()
437
435
            self.assertTrue(url.startswith('%s://' % self._qualified_prefix))
438
436
        finally:
544
542
 
545
543
    def test_post_body_is_received(self):
546
544
        server = RecordingServer(expect_body_tail='end-of-body')
547
 
        server.setUp()
548
 
        self.addCleanup(server.tearDown)
 
545
        self.start_server(server)
549
546
        scheme = self._qualified_prefix
550
547
        url = '%s://%s:%s/' % (scheme, server.host, server.port)
551
548
        http_transport = self._transport(url)
625
622
        # for details) make no distinction between a closed
626
623
        # socket and badly formatted status line, so we can't
627
624
        # just test for ConnectionError, we have to test
628
 
        # InvalidHttpResponse too.
629
 
        self.assertRaises((errors.ConnectionError, errors.InvalidHttpResponse),
 
625
        # InvalidHttpResponse too. And pycurl may raise ConnectionReset
 
626
        # instead of ConnectionError too.
 
627
        self.assertRaises(( errors.ConnectionError, errors.ConnectionReset,
 
628
                            errors.InvalidHttpResponse),
630
629
                          t.has, 'foo/bar')
631
630
 
632
631
    def test_http_get(self):
633
632
        server = self.get_readonly_server()
634
633
        t = self._transport(server.get_url())
635
 
        self.assertRaises((errors.ConnectionError, errors.InvalidHttpResponse),
 
634
        self.assertRaises((errors.ConnectionError, errors.ConnectionReset,
 
635
                           errors.InvalidHttpResponse),
636
636
                          t.get, 'foo/bar')
637
637
 
638
638
 
777
777
 
778
778
    def test_send_receive_bytes(self):
779
779
        server = RecordingServer(expect_body_tail='c')
780
 
        server.setUp()
781
 
        self.addCleanup(server.tearDown)
 
780
        self.start_server(server)
782
781
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
783
782
        sock.connect((server.host, server.port))
784
783
        sock.sendall('abc')