X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;ds=sidebyside;f=python-eventlet%2Ftests%2Fsocket_test.py;h=634e1f0cc035b9da1d4af104bd5b870ee10bc719;hb=refs%2Ftags%2Fmos-9.0;hp=60881f72b3074066d5222f302bb64e51f77986fb;hpb=358bd9258c2b6d2ee74de4dfd07a5123107abad4;p=packages%2Ftrusty%2Fpython-eventlet.git diff --git a/python-eventlet/tests/socket_test.py b/python-eventlet/tests/socket_test.py index 60881f7..634e1f0 100644 --- a/python-eventlet/tests/socket_test.py +++ b/python-eventlet/tests/socket_test.py @@ -1,3 +1,4 @@ +import eventlet from eventlet.green import socket @@ -6,3 +7,25 @@ def test_create_connection_error(): socket.create_connection(('192.0.2.1', 80), timeout=0.1) except (IOError, OSError): pass + + +def test_recv_type(): + # https://github.com/eventlet/eventlet/issues/245 + # socket recv returning multiple data types + # For this test to work, client and server have to be in separate + # processes or OS threads. Just running two greenthreads gives + # false test pass. + threading = eventlet.patcher.original('threading') + addr = [] + + def server(): + sock = eventlet.listen(('127.0.0.1', 0)) + addr[:] = sock.getsockname() + eventlet.sleep(0.2) + + server_thread = threading.Thread(target=server) + server_thread.start() + eventlet.sleep(0.1) + sock = eventlet.connect(tuple(addr)) + s = sock.recv(1) + assert isinstance(s, bytes)