Пример #1
0
def test_send_recv_args():
    server = Server({'echo': echo})
    server.listen(0)

    comm = yield connect(server.address)
    result = yield send_recv(comm, op='echo', x=b'1')
    assert result == b'1'
    assert not comm.closed()
    result = yield send_recv(comm, op='echo', x=b'2', reply=False)
    assert result == None
    assert not comm.closed()
    result = yield send_recv(comm, op='echo', x=b'3', close=True)
    assert result == b'3'
    assert comm.closed()

    server.stop()
Пример #2
0
def test_send_recv_args():
    server = Server({"echo": echo})
    server.listen(0)

    comm = yield connect(server.address)
    result = yield send_recv(comm, op="echo", x=b"1")
    assert result == b"1"
    assert not comm.closed()
    result = yield send_recv(comm, op="echo", x=b"2", reply=False)
    assert result is None
    assert not comm.closed()
    result = yield send_recv(comm, op="echo", x=b"3", close=True)
    assert result == b"3"
    assert comm.closed()

    server.stop()
Пример #3
0
def test_send_recv_args():
    server = Server({'echo': echo})
    server.listen(0)

    comm = yield connect(server.address)
    result = yield send_recv(comm, op='echo', x=b'1')
    assert result == b'1'
    assert not comm.closed()
    result = yield send_recv(comm, op='echo', x=b'2', reply=False)
    assert result is None
    assert not comm.closed()
    result = yield send_recv(comm, op='echo', x=b'3', close=True)
    assert result == b'3'
    assert comm.closed()

    server.stop()
Пример #4
0
def test_send_recv_args():
    server = Server({'echo': echo})
    server.listen(0)

    result = yield send_recv(arg=('127.0.0.1', server.port), op='echo', x=b'1')
    assert result == b'1'
    result = yield send_recv(addr=('127.0.0.1:%d' % server.port).encode(),
                             op='echo', x=b'1')
    assert result == b'1'
    result = yield send_recv(ip=b'127.0.0.1', port=server.port, op='echo',
                            x=b'1')
    assert result == b'1'
    result = yield send_recv(ip=b'127.0.0.1', port=server.port, op='echo',
                             x=b'1', reply=False)
    assert result == None

    server.stop()
Пример #5
0
def test_send_recv_args():
    server = Server({'echo': echo})
    server.listen(0)

    result = yield send_recv(arg=('127.0.0.1', server.port), op='echo', x=b'1')
    assert result == b'1'
    result = yield send_recv(addr=('127.0.0.1:%d' % server.port).encode(),
                             op='echo', x=b'1')
    assert result == b'1'
    result = yield send_recv(ip=b'127.0.0.1', port=server.port, op='echo',
                            x=b'1')
    assert result == b'1'
    result = yield send_recv(ip=b'127.0.0.1', port=server.port, op='echo',
                             x=b'1', reply=False)
    assert result == None

    server.stop()
Пример #6
0
def test_deserialize_error():
    server = Server({'throws': throws})
    server.listen(0)

    comm = yield connect(server.address, deserialize=False)
    with pytest.raises(Exception) as info:
        yield send_recv(comm, op='throws')

    assert type(info.value) == Exception
    for c in str(info.value):
        assert c.isalpha() or c in "(',!)"  # no crazy bytestrings
Пример #7
0
def test_deserialize_error():
    server = Server({'throws': throws})
    server.listen(0)

    comm = yield connect(server.address, deserialize=False)
    with pytest.raises(Exception) as info:
        yield send_recv(comm, op='throws')

    assert type(info.value) == Exception
    for c in str(info.value):
        assert c.isalpha() or c in "(',!)"  # no crazy bytestrings
Пример #8
0
def test_send_recv_args():
    server = Server({'echo': echo})
    server.listen(0)

    addr = '127.0.0.1:%d' % server.port
    addr2 = server.address

    result = yield send_recv(addr=addr, op='echo', x=b'1')
    assert result == b'1'
    result = yield send_recv(addr=addr, op='echo', x=b'2', reply=False)
    assert result == None
    result = yield send_recv(addr=addr2, op='echo', x=b'2')
    assert result == b'2'

    comm = yield connect(addr)
    result = yield send_recv(comm, op='echo', x=b'3')
    assert result == b'3'
    assert not comm.closed()
    result = yield send_recv(comm, op='echo', x=b'4', close=True)
    assert result == b'4'
    assert comm.closed()

    server.stop()
Пример #9
0
async def test_send_recv_cancelled():
    """Test that the comm channel is closed on CancelledError"""
    async def get_stuck(comm):
        await asyncio.Future()

    server = Server({"get_stuck": get_stuck})
    await server.listen(0)

    client_comm = await connect(server.address, deserialize=False)
    while not server._comms:
        await asyncio.sleep(0.01)
    server_comm = next(iter(server._comms))

    with pytest.raises(asyncio.TimeoutError):
        await asyncio.wait_for(send_recv(client_comm, op="get_stuck"),
                               timeout=0.1)
    assert client_comm.closed()
    while not server_comm.closed():
        await asyncio.sleep(0.01)