[pypy-commit] pypy stdlib-2.7.9: provide SSLContext.options

bdkearns noreply at buildbot.pypy.org
Sun Dec 21 03:02:17 CET 2014


Author: Brian Kearns <bdkearns at gmail.com>
Branch: stdlib-2.7.9
Changeset: r75042:e8524db1d39c
Date: 2014-12-20 21:00 -0500
http://bitbucket.org/pypy/pypy/changeset/e8524db1d39c/

Log:	provide SSLContext.options

diff --git a/pypy/module/_ssl/interp_ssl.py b/pypy/module/_ssl/interp_ssl.py
--- a/pypy/module/_ssl/interp_ssl.py
+++ b/pypy/module/_ssl/interp_ssl.py
@@ -6,7 +6,7 @@
 from pypy.interpreter.baseobjspace import W_Root
 from pypy.interpreter.error import OperationError, oefmt
 from pypy.interpreter.gateway import interp2app, unwrap_spec
-from pypy.interpreter.typedef import TypeDef
+from pypy.interpreter.typedef import TypeDef, GetSetProperty
 from pypy.module._socket import interp_socket
 
 
@@ -844,11 +844,15 @@
             libssl_ERR_clear_error()
             raise ssl_error(space, "No cipher can be selected.")
 
+    def descr_get_options(self, space):
+        return space.newlong(libssl_SSL_CTX_get_options(self.ctx))
+
 _SSLContext.typedef = TypeDef("_SSLContext",
     __module__ = "_ssl",
     __new__ = interp2app(_SSLContext.descr_new),
     _wrap_socket = interp2app(_SSLContext.descr_wrap_socket),
     set_ciphers = interp2app(_SSLContext.descr_set_ciphers),
+    options = GetSetProperty(_SSLContext.descr_get_options),
 )
 
 
diff --git a/pypy/module/_ssl/test/test_ssl.py b/pypy/module/_ssl/test/test_ssl.py
--- a/pypy/module/_ssl/test/test_ssl.py
+++ b/pypy/module/_ssl/test/test_ssl.py
@@ -110,6 +110,10 @@
              ('IP Address', '192.0.2.1'),
              ('IP Address', '2001:DB8:0:0:0:0:0:1\n'))
 
+    def test_context(self):
+        import _ssl
+        s = _ssl._SSLContext(_ssl.PROTOCOL_TLSv1)
+        assert type(s.options) is long
 
 class AppTestConnectedSSL:
     spaceconfig = {


More information about the pypy-commit mailing list