Rev 3126: Provide a way to specify the protocol version at the server layer. in file:///v/home/vila/src/bzr/bugs/175524/
Vincent Ladeuil
v.ladeuil+lp at free.fr
Fri Dec 21 09:43:29 GMT 2007
At file:///v/home/vila/src/bzr/bugs/175524/
------------------------------------------------------------
revno: 3126
revision-id:v.ladeuil+lp at free.fr-20071221094322-pgf4q5wla2mjs3gp
parent: v.ladeuil+lp at free.fr-20071220201638-dcvzegapib1wkdga
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: 175524
timestamp: Fri 2007-12-21 10:43:22 +0100
message:
Provide a way to specify the protocol version at the server layer.
* bzrlib/tests/http_server.py:
(TestingHTTPRequestHandler): Take the test case server protocol
version if provided to override the local protocol version.
(HttpServer): Add a optional protol_version parameter.
(HttpServer.__init__): If provided, our protocol version takes
precedence over the request handler one.
modified:
bzrlib/tests/http_server.py httpserver.py-20061012142527-m1yxdj1xazsf8d7s-1
-------------- next part --------------
=== modified file 'bzrlib/tests/http_server.py'
--- a/bzrlib/tests/http_server.py 2007-12-19 07:46:29 +0000
+++ b/bzrlib/tests/http_server.py 2007-12-21 09:43:22 +0000
@@ -52,6 +52,13 @@
# The Message-like class used to parse the request headers
MessageClass = httplib.HTTPMessage
+ def setup(self):
+ SimpleHTTPServer.SimpleHTTPRequestHandler.setup(self)
+ tcs = self.server.test_case_server
+ if tcs.protocol_version is not None:
+ # If the test server forced a protocol version, use it
+ self.protocol_version = tcs.protocol_version
+
def log_message(self, format, *args):
tcs = self.server.test_case_server
tcs.log('webserver - %s - - [%s] %s "%s" "%s"',
@@ -361,19 +368,32 @@
_url_protocol = 'http'
# Subclasses can provide a specific request handler
- def __init__(self, request_handler=TestingHTTPRequestHandler):
+ def __init__(self, request_handler=TestingHTTPRequestHandler,
+ protocol_version=None):
+ """Constructor.
+
+ :param request_handler: a class that will be instantiated to handle an
+ http connection (one or several requests).
+
+ :param protocol_version: if specified, will override the protocol
+ version of the request handler.
+ """
transport.Server.__init__(self)
self.request_handler = request_handler
self.host = 'localhost'
self.port = 0
self._httpd = None
+ self.protocol_version = protocol_version
# Allows tests to verify number of GET requests issued
self.GET_request_nb = 0
def _get_httpd(self):
if self._httpd is None:
rhandler = self.request_handler
- proto_vers = rhandler.protocol_version
+ if self.protocol_version is None:
+ proto_vers = rhandler.protocol_version
+ else:
+ proto_vers = self.protocol_version
# Create the appropriate server for the required protocol
serv_cls = self.http_server_class.get(proto_vers, None)
if serv_cls is None:
More information about the bazaar-commits
mailing list