Copy async_lru for Python 3.7 compatibility

This commit is contained in:
Andras Schmelczer 2022-07-29 12:57:16 +02:00
parent 2b7188b1b8
commit 18c6ba62bb
No known key found for this signature in database
GPG key ID: 0EA1BC97D0AB076E
15 changed files with 1321 additions and 0 deletions

22
tests/external/test_cache_clear.py vendored Normal file
View file

@ -0,0 +1,22 @@
import asyncio
import pytest
from great_ai.external.async_lru import alru_cache
pytestmark = pytest.mark.asyncio
async def test_cache_clear(check_lru, loop):
@alru_cache()
async def coro(val):
return val
inputs = [1, 2, 3]
coros = [coro(v) for v in inputs]
ret = await asyncio.gather(*coros)
assert ret == inputs
check_lru(coro, hits=0, misses=3, cache=3, tasks=0)
coro.cache_clear()
check_lru(coro, hits=0, misses=0, cache=0, tasks=0)