Пример #1
0
async def test_request_without_data(loop, auto_close):
    t = AIOHttpTransport([{}], connection_class=DummyConnection, loop=loop,
                         data='')
    auto_close(t)

    ret = await t.perform_request('GET', '/')
    assert ret == ''
Пример #2
0
async def test_request_headers(loop, auto_close, es_server, mocker):
    t = auto_close(
        AIOHttpTransport(
            [{
                'host': es_server['host'],
                'port': es_server['port']
            }],
            http_auth=es_server['auth'],
            loop=loop,
            headers={
                'H1': 'V1',
                'H2': 'V2'
            },
        ))

    for conn in t.connection_pool.connections:
        mocker.spy(conn.session, 'request')

    await t.perform_request('GET', '/', headers={'H1': 'VV1', 'H3': 'V3'})

    session = (await t.get_connection()).session
    _, kwargs = session.request.call_args
    assert kwargs['headers'] == {
        'H1': 'VV1',
        'H2': 'V2',
        'H3': 'V3',
        'Content-Type': 'application/json',
    }
Пример #3
0
async def test_custom_serializers(auto_close, loop):
    serializer = object()
    t = auto_close(AIOHttpTransport([{}],
                                    serializers={'test': serializer},
                                    loop=loop))
    assert 'test' in t.deserializer.serializers
    assert t.deserializer.serializers['test'] is serializer
Пример #4
0
async def test_sniff_hosts_error(auto_close, loop, es_server):
    t = auto_close(
        AIOHttpTransport([{
            'host': 'unknown_host',
            'port': 9200
        }], loop=loop))
    with pytest.raises(TransportError):
        await t.sniff_hosts()
Пример #5
0
async def test_get_connection_with_sniff_on_start(auto_close, loop, es_server):
    t = auto_close(AIOHttpTransport([{'host': es_server['host'],
                                      'port': es_server['port']}],
                                    http_auth=es_server['auth'],
                                    sniff_on_start=True, loop=loop))
    conn = await t.get_connection()
    assert conn is not None
    assert t.initial_sniff_task is None
Пример #6
0
async def test_request_error_404_on_head(loop, auto_close):
    exc = TransportError(404)
    t = AIOHttpTransport([{}], connection_class=DummyConnection, loop=loop,
                         exception=exc)
    auto_close(t)

    ret = await t.perform_request('HEAD', '/')
    assert not ret
Пример #7
0
async def test_sniff_hosts_no_hosts(auto_close, loop, es_server):
    t = auto_close(AIOHttpTransport([{'host': es_server['host'],
                                      'port': es_server['port']}],
                                    http_auth=es_server['auth'],
                                    loop=loop))
    t.host_info_callback = lambda host_info, host: None
    with pytest.raises(TransportError):
        await t.sniff_hosts()
Пример #8
0
async def test_close_with_sniff_on_start(loop, es_server):
    t = AIOHttpTransport([{'host': es_server['host'],
                           'port': es_server['port']}],
                         http_auth=es_server['auth'],
                         sniff_on_start=True, loop=loop)
    assert t.initial_sniff_task is not None
    await t.close()
    assert t.initial_sniff_task is None
    assert t._closed
Пример #9
0
async def test_sniff_on_start(auto_close, loop, es_server):
    t = auto_close(AIOHttpTransport([{'host': 'unknown_host',
                                      'port': 9200},
                                     {'host': es_server['host'],
                                      'port': es_server['port']}],
                                    http_auth=es_server['auth'],
                                    sniff_on_start=True, loop=loop))
    assert t.initial_sniff_task is not None
    await t.initial_sniff_task
    assert t.initial_sniff_task is None
    assert len(t.connection_pool.connections) == 1
Пример #10
0
async def test_request_retry_on_status(loop, auto_close):
    exc = TransportError(500)
    t = AIOHttpTransport([{}], connection_class=DummyConnection, loop=loop,
                         exception=exc, retry_on_status=(500,))
    auto_close(t)

    with pytest.raises(TransportError):
        await t.perform_request('GET', '/')

    conn = await t.get_connection()
    assert len(conn.calls) == 3
Пример #11
0
async def test_request_connection_timeout_with_retry(loop, auto_close):
    exc = ConnectionTimeout()
    t = AIOHttpTransport([{}], connection_class=DummyConnection, loop=loop,
                         exception=exc, retry_on_timeout=True)
    auto_close(t)

    with pytest.raises(ConnectionTimeout):
        await t.perform_request('GET', '/')

    conn = await t.get_connection()
    assert len(conn.calls) == 3
Пример #12
0
async def test_request_connection_error(loop, auto_close):
    exc = ConnectionError()
    t = AIOHttpTransport([{}], connection_class=DummyConnection, loop=loop,
                         exception=exc)
    auto_close(t)

    with pytest.raises(ConnectionError):
        await t.perform_request('GET', '/')

    conn = await t.get_connection()
    assert len(conn.calls) == 3
Пример #13
0
async def test_get_connection_without_sniffer_timeout(auto_close,
                                                      loop, es_server):
    t = auto_close(AIOHttpTransport([{'host': 'unknown_host',
                                      'port': 9200},
                                     {'host': es_server['host'],
                                      'port': es_server['port']}],
                                    http_auth=es_server['auth'],
                                    sniffer_timeout=1e12, loop=loop))
    conn = await t.get_connection()
    assert conn is not None
    assert t.initial_sniff_task is None
    assert len(t.connection_pool.connections) == 2
Пример #14
0
async def test_mark_dead(auto_close, loop, es_server):
    t = auto_close(AIOHttpTransport([{'host': 'unknown_host',
                                      'port': 9200},
                                     {'host': es_server['host'],
                                      'port': es_server['port']}],
                                    http_auth=es_server['auth'],
                                    randomize_hosts=False,
                                    loop=loop))
    conn = t.connection_pool.connections[0]
    assert conn is not None
    assert conn.host == 'http://unknown_host:9200'
    await t.mark_dead(conn)
    assert len(t.connection_pool.connections) == 1
Пример #15
0
async def test_no_sniff_on_start(auto_close, loop):
    t = auto_close(AIOHttpTransport([{}], sniff_on_start=False, loop=loop))
    assert t.initial_sniff_task is None