コード例 #1
0
def test_connection_pool_generation(pingpong_thrift_client,
                                    pingpong_service_key,
                                    pingpong_thrift_service, fake_datetime):
    pool = ClientPool(
        pingpong_thrift_service,
        pingpong_thrift_client.host,
        pingpong_thrift_client.port,
        name=pingpong_service_key,
        raise_empty=False,
        max_conn=3,
        connction_class=pingpong_thrift_client.pool.connction_class,
    )
    c = pool.produce_client()
    assert c.pool_generation == pool.generation == 0

    pool.clear()

    c2 = pool.produce_client()
    assert c2.pool_generation == pool.generation == 1

    pool.put_back_connection(c)
    pool.put_back_connection(c2)

    for c in pool.connections:
        assert c.pool_generation == pool.generation
コード例 #2
0
def test_api_call_context(pingpong_thrift_client, pingpong_service_key,
                          pingpong_thrift_service, fake_time):
    from thrift_connector.hooks import before_call, after_call

    mock_before_hook = Mock()
    mock_after_hook = Mock()
    before_call.register(mock_before_hook)
    after_call.register(mock_after_hook)

    pool = ClientPool(
        pingpong_thrift_service,
        pingpong_thrift_client.host,
        pingpong_thrift_client.port,
        name=pingpong_service_key,
        raise_empty=False,
        max_conn=3,
        connction_class=pingpong_thrift_client.pool.connction_class,
    )
    pool.ping()

    # get one client manually, there should be one client in pool,
    # since there's only one call
    client = pool.get_client()
    assert client.test_connection()
    pool.put_back_connection(client)

    mock_before_hook.assert_called_with(pool, client, 'ping', fake_time.time())
    mock_after_hook.assert_called_with(pool, client, 'ping', fake_time.time(),
                                       0)
コード例 #3
0
def test_api_call_context(
        pingpong_thrift_client, pingpong_service_key, pingpong_thrift_service,
        fake_time):
    from thrift_connector.hooks import before_call, after_call

    mock_before_hook = Mock()
    mock_after_hook = Mock()
    before_call.register(mock_before_hook)
    after_call.register(mock_after_hook)

    pool = ClientPool(
        pingpong_thrift_service,
        pingpong_thrift_client.host,
        pingpong_thrift_client.port,
        name=pingpong_service_key,
        raise_empty=False, max_conn=3,
        connction_class=pingpong_thrift_client.pool.connction_class,
        )
    pool.ping()

    # get one client manually, there should be one client in pool,
    # since there's only one call
    client = pool.get_client()
    assert client.test_connection()
    pool.put_back_connection(client)

    mock_before_hook.assert_called_with(pool, client, 'ping', fake_time.time())
    mock_after_hook.assert_called_with(pool, client, 'ping', fake_time.time(), 0)
コード例 #4
0
def test_connection_pool_generation(
        pingpong_thrift_client, pingpong_service_key, pingpong_thrift_service,
        fake_time):
    pool = ClientPool(
        pingpong_thrift_service,
        pingpong_thrift_client.host,
        pingpong_thrift_client.port,
        name=pingpong_service_key,
        raise_empty=False, max_conn=3,
        connction_class=pingpong_thrift_client.pool.connction_class,
        )
    c = pool.produce_client()
    assert c.pool_generation == pool.generation == 0

    pool.clear()

    c2 = pool.produce_client()
    assert c2.pool_generation == pool.generation == 1

    pool.put_back_connection(c)
    pool.put_back_connection(c2)

    for c in pool.connections:
        assert c.pool_generation == pool.generation