Author: Carl Friedrich Bolz <cfb...@gmx.de>
Branch: py3.5
Changeset: r88268:1eca675443fa
Date: 2016-11-09 16:22 +0100
http://bitbucket.org/pypy/pypy/changeset/1eca675443fa/

Log:    use fsencode in _ssl module.

        (the test is not actually good. it passes before the change too)

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
@@ -1597,7 +1597,7 @@
             libssl_SSL_CTX_set_default_passwd_cb_userdata(
                 self.ctx, None)
 
-    @unwrap_spec(filepath=str)
+    @unwrap_spec(filepath='fsencode')
     def load_dh_params_w(self, space, filepath):
         bio = libssl_BIO_new_file(filepath, "r")
         if not bio:
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
@@ -1,6 +1,8 @@
 from rpython.tool.udir import udir
 import os
 
+from pypy.interpreter.test.test_fsencode import BaseFSEncodeTest
+
 class AppTestSSL:
     spaceconfig = dict(usemodules=('_ssl', '_socket', 'select', 'struct',
                                    'binascii', 'thread'))
@@ -341,10 +343,11 @@
             """)
 
 
-class AppTestContext:
+class AppTestContext(BaseFSEncodeTest):
     spaceconfig = dict(usemodules=('_ssl',))
 
     def setup_class(cls):
+        BaseFSEncodeTest.setup_class.im_func(cls)
         tmpfile = udir / "tmpfile.pem"
         tmpfile.write(SSL_CERTIFICATE + SSL_PRIVATE_KEY)
         cls.w_keycert = cls.space.wrap(str(tmpfile))
@@ -366,8 +369,14 @@
         tmpfile = udir / "python.org.pem"
         tmpfile.write(SVN_PYTHON_ORG_ROOT_CERT)
         cls.w_python_org_cert = cls.space.wrap(str(tmpfile))
-        cls.w_dh512 = cls.space.wrap(os.path.join(
-            os.path.dirname(__file__), 'dh512.pem'))
+        tmpfile = udir / cls.special_char
+        fn = os.path.join(
+            os.path.dirname(__file__), 'dh512.pem')
+        with file(fn) as f:
+            s = f.read()
+        tmpfile.write(s)
+        cls.w_dh512 = cls.space.wrap(fn)
+        cls.w_dh512special = cls.space.wrap(str(tmpfile))
 
     def test_load_cert_chain(self):
         import _ssl, errno
@@ -443,6 +452,9 @@
         exc = raises(IOError, ctx.load_dh_params, "inexistent.pem")
         assert exc.value.errno == errno.ENOENT
 
+        ctx = _ssl._SSLContext(_ssl.PROTOCOL_TLS)
+        ctx.load_dh_params(self.dh512special)
+
     def test_set_ecdh_curve(self):
         import _ssl
         ctx = _ssl._SSLContext(_ssl.PROTOCOL_TLS)
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to