Author: Matti Picus <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit