]> granicus.if.org Git - python/commitdiff
Test SSLSock's context getter and setter
authorChristian Heimes <christian@cheimes.de>
Thu, 5 Dec 2013 06:41:08 +0000 (07:41 +0100)
committerChristian Heimes <christian@cheimes.de>
Thu, 5 Dec 2013 06:41:08 +0000 (07:41 +0100)
Lib/test/test_ssl.py

index 4da31e1108794764e999b22f23b9c1084a2598e0..92dc31afa99e85cdfe7c187638678abf0aed65d1 100644 (file)
@@ -1419,6 +1419,20 @@ class NetworkedTests(unittest.TestCase):
                 s.close()
             self.assertEqual(len(ctx.get_ca_certs()), 1)
 
+    def test_context_setget(self):
+        # Check that the context of a connected socket can be replaced.
+        with support.transient_internet("svn.python.org"):
+            ctx1 = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
+            ctx2 = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
+            s = socket.socket(socket.AF_INET)
+            with ctx1.wrap_socket(s) as ss:
+                ss.connect(("svn.python.org", 443))
+                self.assertIs(ss.context, ctx1)
+                self.assertIs(ss._sslobj.context, ctx1)
+                ss.context = ctx2
+                self.assertIs(ss.context, ctx2)
+                self.assertIs(ss._sslobj.context, ctx2)
+
 try:
     import threading
 except ImportError: