diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8a5e47f..a97b33a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ jobs: - uses: actions/setup-python@v4 with: python-version: "3.x" - - uses: abatilo/actions-poetry@v2.1.6 + - uses: abatilo/actions-poetry@v2 - name: Config poetry run: poetry config experimental.new-installer false - name: CI diff --git a/examples/in_memory/main.py b/examples/in_memory/main.py index d9da58f..bbf0910 100644 --- a/examples/in_memory/main.py +++ b/examples/in_memory/main.py @@ -42,14 +42,17 @@ async def get_date(): async def get_datetime(request: Request, response: Response): return {"now": pendulum.now()} + @cache(namespace="test") async def func_kwargs(*unused_args, **kwargs): return kwargs + @app.get("/kwargs") async def get_kwargs(name: str): return await func_kwargs(name, name=name) + @app.get("/sync-me") @cache(namespace="test") def sync_me(): diff --git a/fastapi_cache/backends/redis.py b/fastapi_cache/backends/redis.py index 0088f4f..0bff5c7 100644 --- a/fastapi_cache/backends/redis.py +++ b/fastapi_cache/backends/redis.py @@ -13,7 +13,7 @@ class RedisBackend(Backend): async def get_with_ttl(self, key: str) -> Tuple[int, str]: async with self.redis.pipeline(transaction=not self.is_cluster) as pipe: - return await (pipe.ttl(key).get(key).execute()) + return await pipe.ttl(key).get(key).execute() async def get(self, key: str) -> Optional[str]: return await self.redis.get(key) @@ -27,4 +27,4 @@ class RedisBackend(Backend): return await self.redis.eval(lua, numkeys=0) elif key: return await self.redis.delete(key) - return 0 \ No newline at end of file + return 0 diff --git a/fastapi_cache/decorator.py b/fastapi_cache/decorator.py index 41e6b9e..b0601aa 100644 --- a/fastapi_cache/decorator.py +++ b/fastapi_cache/decorator.py @@ -136,7 +136,9 @@ def cache( try: ttl, ret = await backend.get_with_ttl(cache_key) except Exception: - logger.warning(f"Error retrieving cache key '{cache_key}' from backend:", exc_info=True) + logger.warning( + f"Error retrieving cache key '{cache_key}' from backend:", exc_info=True + ) ttl, ret = 0, None if not request: if ret is not None: @@ -145,7 +147,9 @@ def cache( try: await backend.set(cache_key, coder.encode(ret), expire) except Exception: - logger.warning(f"Error setting cache key '{cache_key}' in backend:", exc_info=True) + logger.warning( + f"Error setting cache key '{cache_key}' in backend:", exc_info=True + ) return ret if request.method != "GET": diff --git a/tests/test_decorator.py b/tests/test_decorator.py index 783b9d4..752a0d2 100644 --- a/tests/test_decorator.py +++ b/tests/test_decorator.py @@ -37,7 +37,6 @@ def test_datetime() -> None: def test_date() -> None: """Test path function without request or response arguments.""" with TestClient(app) as client: - response = client.get("/date") assert pendulum.parse(response.json()) == pendulum.today() @@ -68,8 +67,9 @@ def test_cache_response_obj() -> None: assert get_cache_response.headers.get("cache-control") assert get_cache_response.headers.get("etag") + def test_kwargs() -> None: with TestClient(app) as client: name = "Jon" - response = client.get("/kwargs", params = {"name": name}) + response = client.get("/kwargs", params={"name": name}) assert response.json() == {"name": name}