コード例 #1
0
ファイル: test_socket.py プロジェクト: bmerry/async-solipsism
def test_use_after_shutdown(end):
    sock0, sock1 = async_solipsism.socketpair()
    if end == 'read':
        sock0.shutdown(socket.SHUT_RD)
    else:
        sock1.shutdown(socket.SHUT_WR)
    assert sock0.recv(1) == b''
    with pytest.raises(BrokenPipeError):
        sock1.send(b'hello')
コード例 #2
0
async def test_connect_existing(event_loop, mocker):
    sock1, sock2 = async_solipsism.socketpair()
    transport1, protocol1 = await event_loop.connect_accepted_socket(
        mocker.MagicMock, sock1)
    transport2, protocol2 = await event_loop.create_connection(
        mocker.MagicMock, sock=sock2)
    transport1.write(b'Hello world\n')
    transport1.write_eof()
    transport1.close()
    protocol2.eof_received.return_value = None
    await asyncio.sleep(1)
    assert protocol2.method_calls == [
        mocker.call.connection_made(transport2),
        mocker.call.data_received(b'Hello world\n'),
        mocker.call.eof_received(),
        mocker.call.connection_lost(None)
    ]
コード例 #3
0
async def test_delayed_sock_recv(method, delay, event_loop):
    async def delayed_write(wsock):
        await asyncio.sleep(1)
        wsock.send(b'Hello')

    rsock, wsock = async_solipsism.socketpair()
    task = event_loop.create_task(delayed_write(wsock))
    if not delay:
        await task
    if method == 'recv':
        data = await event_loop.sock_recv(rsock, 10)
    else:
        data = bytearray(10)
        n = await event_loop.sock_recv_into(rsock, data)
        data = data[:n]
    assert data == b'Hello'
    assert event_loop.time() == 1.0
    rsock.close()
    wsock.close()
    await task
コード例 #4
0
async def test_sock_sendall(size, event_loop):
    async def delayed_read(rsock):
        n = 0
        while True:
            try:
                data = rsock.recv(16384)
            except BlockingIOError:
                await asyncio.sleep(1)
            else:
                if not data:
                    break
                assert data == b'?' * len(data)
                n += len(data)
        return n

    rsock, wsock = async_solipsism.socketpair()
    task = event_loop.create_task(delayed_read(rsock))
    await event_loop.sock_sendall(wsock, b'?' * size)
    wsock.close()
    n = await task
    assert n == size
コード例 #5
0
ファイル: test_socket.py プロジェクト: bmerry/async-solipsism
def test_sockaddr(given, expected):
    sock = async_solipsism.socketpair(sock1_name=given)[0]
    assert sock.getsockname() == expected
コード例 #6
0
ファイル: test_socket.py プロジェクト: bmerry/async-solipsism
def sock():
    return async_solipsism.socketpair()[0]