[pypy-commit] pypy py3k: socket.getaddrinfo() accept strings for the 'port' parameter

amauryfa noreply at buildbot.pypy.org
Tue Dec 6 23:51:34 CET 2011


Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: py3k
Changeset: r50237:df2edb52b29e
Date: 2011-12-05 22:48 +0100
http://bitbucket.org/pypy/pypy/changeset/df2edb52b29e/

Log:	socket.getaddrinfo() accept strings for the 'port' parameter

diff --git a/pypy/module/_socket/interp_func.py b/pypy/module/_socket/interp_func.py
--- a/pypy/module/_socket/interp_func.py
+++ b/pypy/module/_socket/interp_func.py
@@ -270,7 +270,9 @@
         port = None
     elif space.is_true(space.isinstance(w_port, space.w_int)):
         port = str(space.int_w(w_port))
-    elif space.is_true(space.isinstance(w_port, space.w_str)):
+    elif space.is_true(space.isinstance(w_port, space.w_bytes)):
+        port = space.bytes_w(w_port)
+    elif space.is_true(space.isinstance(w_port, space.w_unicode)):
         port = space.str_w(w_port)
     else:
         raise OperationError(space.w_TypeError,
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
@@ -223,10 +223,12 @@
     w_l = space.appexec([w_socket, space.wrapbytes(host), space.wrap(port)],
                         "(_socket, host, port): return _socket.getaddrinfo(host, port)")
     assert space.unwrap(w_l) == info
-    py.test.skip("Unicode conversion is too slow")
     w_l = space.appexec([w_socket, space.wrap(host), space.wrap(port)],
                         "(_socket, host, port): return _socket.getaddrinfo(host, port)")
     assert space.unwrap(w_l) == info
+    w_l = space.appexec([w_socket, space.wrapbytes(host), space.wrap('smtp')],
+                        "(_socket, host, port): return _socket.getaddrinfo(host, port)")
+    assert space.unwrap(w_l) == socket.getaddrinfo(host, 'smtp')
 
 def test_unknown_addr_as_object():    
     c_addr = lltype.malloc(rsocket._c.sockaddr, flavor='raw')


More information about the pypy-commit mailing list