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
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)
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)
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