]> granicus.if.org Git - python/commitdiff
Added SSL capability to TestHTTPServer.
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Fri, 20 May 2011 23:34:51 +0000 (00:34 +0100)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Fri, 20 May 2011 23:34:51 +0000 (00:34 +0100)
Lib/test/test_logging.py

index 24a6149b840a35491b8499050754de9c29cf4b0a..09d28ebf365474b4fde74ead3bf9e2377b8c8494 100644 (file)
@@ -810,7 +810,8 @@ if threading:
         :param poll_interval: The polling interval in seconds.
         :param log: Pass ``True`` to enable log messages.
         """
-        def __init__(self, addr, handler, poll_interval=0.5, log=False):
+        def __init__(self, addr, handler, poll_interval=0.5,
+                     log=False, sslctx=None):
             class DelegatingHTTPRequestHandler(BaseHTTPRequestHandler):
                 def __getattr__(self, name, default=None):
                     if name.startswith('do_'):
@@ -826,6 +827,18 @@ if threading:
                               self).log_message(format, *args)
             HTTPServer.__init__(self, addr, DelegatingHTTPRequestHandler)
             ControlMixin.__init__(self, handler, poll_interval)
+            self.sslctx = sslctx
+
+        def get_request(self):
+            try:
+                sock, addr = self.socket.accept()
+                if self.sslctx:
+                    sock = self.sslctx.wrap_socket(sock, server_side=True)
+            except socket.error as e:
+                # socket errors are silenced by the caller, print them here
+                sys.stderr.write("Got an error:\n%s\n" % e)
+                raise
+            return sock, addr
 
     class TestTCPServer(ControlMixin, ThreadingTCPServer):
         """