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