Author: Matti Picus <matti.pi...@gmail.com> Branch: release-pypy3.5-5.x Changeset: r90745:b702475ce4b0 Date: 2017-03-18 08:44 +0200 http://bitbucket.org/pypy/pypy/changeset/b702475ce4b0/
Log: merge py3.5 into release diff --git a/lib-python/3/test/test_importlib/frozen/__init__.py b/lib-python/3/test/test_importlib/frozen/__init__.py --- a/lib-python/3/test/test_importlib/frozen/__init__.py +++ b/lib-python/3/test/test_importlib/frozen/__init__.py @@ -1,5 +1,10 @@ import os -from test.support import load_package_tests +import unittest +from test.support import load_package_tests, check_impl_detail def load_tests(*args): return load_package_tests(os.path.dirname(__file__), *args) + + +if check_impl_detail(pypy=True): + raise unittest.SkipTest("PyPy doesn't have frozen modules") diff --git a/lib_pypy/_cffi_ssl/_stdssl/__init__.py b/lib_pypy/_cffi_ssl/_stdssl/__init__.py --- a/lib_pypy/_cffi_ssl/_stdssl/__init__.py +++ b/lib_pypy/_cffi_ssl/_stdssl/__init__.py @@ -1363,7 +1363,8 @@ return lib.BIO_ctrl_pending(self.bio) -RAND_status = lib.RAND_status +def RAND_status(): + return lib.RAND_status() def _RAND_bytes(count, pseudo): if count < 0: diff --git a/lib_pypy/_ssl/__init__.py b/lib_pypy/_ssl/__init__.py --- a/lib_pypy/_ssl/__init__.py +++ b/lib_pypy/_ssl/__init__.py @@ -1,5 +1,6 @@ from _cffi_ssl._stdssl import (_PROTOCOL_NAMES, _OPENSSL_API_VERSION, _test_decode_cert, _SSLContext) +from _cffi_ssl import _stdssl from _cffi_ssl._stdssl import * @@ -8,5 +9,8 @@ RAND_add = builtinify(RAND_add) RAND_bytes = builtinify(RAND_bytes) -RAND_egd = builtinify(RAND_egd) RAND_pseudo_bytes = builtinify(RAND_pseudo_bytes) +RAND_status = builtinify(RAND_status) +# RAND_egd is optional and might not be available on e.g. libressl +if hasattr(_stdssl, 'RAND_egd'): + RAND_egd = builtinify(RAND_egd) diff --git a/pypy/interpreter/mixedmodule.py b/pypy/interpreter/mixedmodule.py --- a/pypy/interpreter/mixedmodule.py +++ b/pypy/interpreter/mixedmodule.py @@ -1,4 +1,4 @@ -from pypy.interpreter.module import Module +from pypy.interpreter.module import Module, init_extra_module_attrs from pypy.interpreter.function import Function, BuiltinFunction from pypy.interpreter import gateway from pypy.interpreter.error import OperationError @@ -18,6 +18,7 @@ def __init__(self, space, w_name): """ NOT_RPYTHON """ Module.__init__(self, space, w_name) + init_extra_module_attrs(space, self) self.lazy = True self.lazy_initial_values_w = {} self.__class__.buildloaders() diff --git a/pypy/module/imp/importing.py b/pypy/module/imp/importing.py --- a/pypy/module/imp/importing.py +++ b/pypy/module/imp/importing.py @@ -119,7 +119,7 @@ def _prepare_module(space, w_mod, filename, pkgdir): space.sys.setmodule(w_mod) - space.setattr(w_mod, space.newtext('__file__'), space.newtext(filename)) + space.setattr(w_mod, space.newtext('__file__'), space.newfilename(filename)) space.setattr(w_mod, space.newtext('__doc__'), space.w_None) if pkgdir is not None: space.setattr(w_mod, space.newtext('__path__'), diff --git a/pypy/module/zipimport/interp_zipimport.py b/pypy/module/zipimport/interp_zipimport.py --- a/pypy/module/zipimport/interp_zipimport.py +++ b/pypy/module/zipimport/interp_zipimport.py @@ -373,7 +373,7 @@ if self.have_modulefile(space, filename + ext): return True, None # See if this is a directory (part of a namespace pkg) - dirpath = self.prefix + fullname + dirpath = self.prefix + fullname.split(".")[-1] if self.have_modulefile(space, dirpath + ZIPSEP): return True, self.filename + os.path.sep + self.corr_zname(dirpath) return False, None diff --git a/pypy/module/zipimport/test/test_zipimport.py b/pypy/module/zipimport/test/test_zipimport.py --- a/pypy/module/zipimport/test/test_zipimport.py +++ b/pypy/module/zipimport/test/test_zipimport.py @@ -431,7 +431,7 @@ z.writestr(zinfo, '') z.close() try: - zipimport.zipimporter(filename) + zipimport.zipimporter(filename).load_module('uu') finally: os.remove(filename) @@ -446,6 +446,13 @@ foo = __import__('foo.one', None, None, []) assert foo.one.attr == 'portion1 foo one' + def test_namespace_pkg_nested(self): + self.writefile('foo/', '') + self.writefile('foo/bar/', '') + self.writefile('foo/bar/one.py', "attr = 'portion1 foo one'\n") + foo = __import__('foo.bar.one', None, None, []) + assert foo.bar.one.attr == 'portion1 foo one' + if os.sep != '/': class AppTestNativePathSep(AppTestZipimport): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit