[Python-checkins] cpython: Added SSL capability to TestHTTPServer.

vinay.sajip python-checkins at python.org
Sat May 21 01:34:58 CEST 2011


http://hg.python.org/cpython/rev/337477d6aaff
changeset:   70238:337477d6aaff
user:        Vinay Sajip <vinay_sajip at yahoo.co.uk>
date:        Sat May 21 00:34:51 2011 +0100
summary:
  Added SSL capability to TestHTTPServer.

files:
  Lib/test/test_logging.py |  15 ++++++++++++++-
  1 files changed, 14 insertions(+), 1 deletions(-)


diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -810,7 +810,8 @@
         :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 @@
                               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):
         """

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list