def test_EOF_on_connection():
    sock = eventlet.listen(('127.0.0.1', 0))
    addr, port = sock.fd.getsockname()
    c = Connections('test', 'dummy')
    c.connect((addr, port), 'remote')
    sock.close()
    c.get()
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_updated_sockets_during_select():
    a, b = socket.socketpair()
    c = Connections('test', 'dummy')
    c.add(a, 'remote')
    def updater(c):
        a, b = socket.socketpair()
        c.add(a, 'new')
        d = Connections('test', 'remote_side')
        d.add(b, 'target')
        d.send('target', 'message')
    eventlet.spawn(updater, c)
    with eventlet.Timeout(1):
        c.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 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