[pypy-commit] pypy py3.6: hg merge default

arigo pypy.commits at gmail.com
Thu Aug 8 03:37:28 EDT 2019


Author: Armin Rigo <arigo at tunes.org>
Branch: py3.6
Changeset: r97098:d84524cf112f
Date: 2019-08-08 09:36 +0200
http://bitbucket.org/pypy/pypy/changeset/d84524cf112f/

Log:	hg merge default

diff --git a/pypy/module/_socket/interp_socket.py b/pypy/module/_socket/interp_socket.py
--- a/pypy/module/_socket/interp_socket.py
+++ b/pypy/module/_socket/interp_socket.py
@@ -398,7 +398,10 @@
                 raise converted_error(space, e)
         if buflen < 0 or buflen > 1024:
             raise explicit_socket_error(space, "getsockopt buflen out of range")
-        return space.newbytes(self.sock.getsockopt(level, optname, buflen))
+        try:
+            return space.newbytes(self.sock.getsockopt(level, optname, buflen))
+        except SocketError as e:
+            raise converted_error(space, e)
 
     def gettimeout_w(self, space):
         """gettimeout() -> timeout
diff --git a/pypy/module/_socket/test/test_sock_app.py b/pypy/module/_socket/test/test_sock_app.py
--- a/pypy/module/_socket/test/test_sock_app.py
+++ b/pypy/module/_socket/test/test_sock_app.py
@@ -949,6 +949,13 @@
         cli = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
         assert cli.family == socket.AF_INET
 
+    def test_missing_error_catching(self):
+        from _socket import socket, error
+        s = socket()
+        s.close()
+        raises(error, s.settimeout, 1)            # EBADF
+        raises(error, s.setblocking, True)        # EBADF
+        raises(error, s.getsockopt, 42, 84, 8)    # EBADF
 
     def test_accept_non_inheritable(self):
         import _socket, os


More information about the pypy-commit mailing list