Add python-eventlet package to MOS 9.0 repository
[packages/trusty/python-eventlet.git] / python-eventlet / tests / socket_test.py
index 60881f72b3074066d5222f302bb64e51f77986fb..634e1f0cc035b9da1d4af104bd5b870ee10bc719 100644 (file)
@@ -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)