39 lines
710 B
Python
39 lines
710 B
Python
import pytest
|
|
from great_ai.external.async_lru import alru_cache
|
|
|
|
pytestmark = pytest.mark.asyncio
|
|
|
|
|
|
async def test_alru_cache_open(check_lru, loop):
|
|
@alru_cache()
|
|
async def coro(val):
|
|
return val
|
|
|
|
await coro(1)
|
|
|
|
check_lru(coro, hits=0, misses=1, cache=1, tasks=0)
|
|
|
|
with pytest.raises(RuntimeError):
|
|
coro.open()
|
|
|
|
close = coro.close()
|
|
|
|
assert coro.closed
|
|
|
|
with pytest.raises(RuntimeError):
|
|
await coro()
|
|
|
|
with pytest.raises(RuntimeError):
|
|
coro.open()
|
|
|
|
await close
|
|
|
|
check_lru(coro, hits=0, misses=0, cache=0, tasks=0)
|
|
|
|
coro.open()
|
|
|
|
ret = await coro(1)
|
|
|
|
assert ret == 1
|
|
|
|
check_lru(coro, hits=0, misses=1, cache=1, tasks=0)
|