Ejemplo n.º 1
0
async def test_pool_clear(mcache_params):
    pool = MemcachedPool(minsize=1, maxsize=5, **mcache_params)
    conn = await pool.acquire()
    await pool.release(conn)
    assert pool.size() == 1
    await pool.clear()
    assert pool.size() == 0
Ejemplo n.º 2
0
async def test_bad_connection(mcache_params):
    pool = MemcachedPool(minsize=5, maxsize=1, **mcache_params)
    pool._host = "INVALID_HOST"
    assert pool.size() == 0
    with pytest.raises(Exception):
        conn = await pool.acquire()
        assert isinstance(conn.reader, asyncio.StreamReader)
        assert isinstance(conn.writer, asyncio.StreamWriter)
        await pool.release(conn)
    assert pool.size() == 0
Ejemplo n.º 3
0
async def test_acquire_dont_create_new_connection_if_have_conn_in_pool(
    mcache_params, ):
    pool = MemcachedPool(minsize=1, maxsize=5, **mcache_params)
    assert pool.size() == 0

    # Add a valid connection
    _conn = await pool._create_new_connection()
    pool._pool.append(_conn)
    assert pool.size() == 1

    conn = await pool.acquire()
    assert conn is _conn
    assert pool.size() == 1
Ejemplo n.º 4
0
async def test_acquire_limit_maxsize(mcache_params):
    pool = MemcachedPool(minsize=1, maxsize=1, **mcache_params)
    assert pool.size() == 0

    # Create up to max connections
    _conn = await pool.acquire()
    assert pool.size() == 1
    await pool.release(_conn)

    async def acquire_wait_release():
        conn = await pool.acquire()
        assert conn is _conn
        await asyncio.sleep(0.01)
        assert pool.size() == 1
        await pool.release(conn)

    await asyncio.gather(*([acquire_wait_release()] * 50))
    assert pool.size() == 1
    assert pool.size() == 1
Ejemplo n.º 5
0
    class Client:
        def __init__(self, pool_size=4):
            self._pool = MemcachedPool(minsize=pool_size,
                                       maxsize=pool_size,
                                       **mcache_params)

        @acquire
        async def acquire_wait_release(self, conn):
            assert self._pool.size() <= pool_size
            await asyncio.sleep(random.uniform(0.01, 0.02))
            return "foo"
Ejemplo n.º 6
0
async def test_pool_creation(mcache_params):
    pool = MemcachedPool(minsize=1, maxsize=5, **mcache_params)
    assert pool.size() == 0
    assert pool._pool_minsize == 1