def test_EPIPE_on_connection(): a, b = socket.socketpair() c = Connections('test', 'dummy') c.add(a, 'remote') b.close() c.send('remote', 'message') # the bad file-descriptor is silently removed assert len(c.sockets) == 0
def test_EPIPE_on_connection_during_multisend(): a, b = socket.socketpair() c, d = socket.socketpair() c = Connections('test', 'dummy') c.add(a, 'remote') c.add(c, 'remote2') b.close() # exception should be swallowed on send c.send(c.ALL, 'message')
def test_send_to_many(): conns = [(i, mock.Mock()) for i in range(10)] c = Connections('test', 'dummy') for target, sock in conns: c._add(sock, target) targets = [2, 3, 5, 9] c.send(targets, 'foo') for i, sock in conns: assert sock.send_concurrent.called == (i in targets)
def test_server_sockets(): c1 = Connections('test', 'server') c2 = Connections('test', 'client') addr, port = c1.listen(('127.0.0.1', 0)) c2.connect((addr, port), 'server') c2.connect((addr, port), 'server2') c2.send('server', 'foo') with eventlet.Timeout(1): sid, data = c1.get() assert data == 'foo', data
def test_multiple_messages(): c1 = Connections('test', 'server') c2 = Connections('test', 'client') addr, port = c1.listen(('127.0.0.1', 0)) c2.connect((addr, port), 'server') c2.send('server', 'foo') c2.send('server', 'foo') c2.send('server', 'foo') with eventlet.Timeout(1): sid, data = c1.get() sid, data = c1.get() sid, data = c1.get()
def test(): c1 = Connections('test', 'dummy1') c2 = Connections('test', 'dummy2') r, w = socket.socketpair() c1.add(r, 'dummy2') c2.add(w) c1.send('dummy2', 'test message') with eventlet.Timeout(1): sid, ret = c2.get() assert sid == 'dummy1' assert ret == 'test message' c2.send('dummy1', 'back atcha') with eventlet.Timeout(1): sid, ret = c1.get() assert sid == 'dummy2' assert ret == 'back atcha'
def updater(c): a, b = socket.socketpair() c.add(a, 'new') d = Connections('test', 'remote_side') d.add(b, 'target') d.send('target', 'message')