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

Reply via email to