def test_cache_memoize_async(cache: Cache): """Test that cache.memoize() can decorate async functions.""" loop = asyncio.get_event_loop() marker = 1 @cache.memoize() async def func(a): return a, marker assert asyncio.iscoroutinefunction(func) assert len(cache) == 0 result = loop.run_until_complete(func("a")) assert result == ("a", 1) assert len(cache) == 1 assert list(cache.values())[0] == ("a", 1) marker += 1 result = loop.run_until_complete(func("a")) assert result == ("a", 1) assert len(cache) == 1 result = loop.run_until_complete(func("b")) assert result == ("b", 2) assert len(cache) == 2
cache.set_many({"a": 1, "b": 2, "c": 3}) assert cache.get_many(["a", "b", "c"]) == {"a": 1, "b": 2, "c": 3} cache.delete_many(["a", "b", "c"]) assert cache.count() == 0 import re cache.set_many({"a_1": 1, "a_2": 2, "123": 3, "b": 4}) # func.uncached(1, 2) # assert cache.copy() == {1: "foobar", 2: ("foo", "bar", "baz")} cache.set_many({"a": 1, "b": 2, "c": 3}) assert list(cache.keys()) == ["a", "b", "c"] assert list(cache.values()) == [1, 2, 3] assert list(cache.items()) == [("a", 1), ("b", 2), ("c", 3)] for key in cache: print(key, cache.get(key)) # 'a' 1 # 'b' 2 # 'c' 3 assert cache.has("a") assert "a" in cache cacheman = CacheManager({ "a": { "maxsize": 100 },
def test_cache_values(cache: Cache): """Test that cache.values() returns all cache values.""" items = {"a": 1, "b": 2, "c": 3} cache.set_many(items) assert sorted(cache.values()) == sorted(items.values())