diff --git a/CHANGELOG.md b/CHANGELOG.md index 16fb208c..e1532eeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## Unreleased - Add `force_cache` extension to enforce the request to be cached, ignoring the HTTP headers. (#117) +- Fix issue where sqlite storage cache get deleted immediately. (#119) ## 0.0.18 (23/11/2023) diff --git a/hishel/_async/_storages.py b/hishel/_async/_storages.py index e639a4db..4887301b 100644 --- a/hishel/_async/_storages.py +++ b/hishel/_async/_storages.py @@ -233,7 +233,7 @@ async def _remove_expired_caches(self) -> None: async with self._lock: await self._connection.execute( - f"DELETE FROM cache WHERE datetime(date_created, '+{self._ttl} seconds') > datetime()" + f"DELETE FROM cache WHERE datetime(date_created, '+{self._ttl} seconds') < datetime()" ) await self._connection.commit() diff --git a/hishel/_sync/_storages.py b/hishel/_sync/_storages.py index 589321ac..70d90561 100644 --- a/hishel/_sync/_storages.py +++ b/hishel/_sync/_storages.py @@ -233,7 +233,7 @@ def _remove_expired_caches(self) -> None: with self._lock: self._connection.execute( - f"DELETE FROM cache WHERE datetime(date_created, '+{self._ttl} seconds') > datetime()" + f"DELETE FROM cache WHERE datetime(date_created, '+{self._ttl} seconds') < datetime()" ) self._connection.commit() diff --git a/tests/_async/test_storages.py b/tests/_async/test_storages.py index 0dadaa51..625720f6 100644 --- a/tests/_async/test_storages.py +++ b/tests/_async/test_storages.py @@ -105,6 +105,7 @@ async def test_filestorage_expired(): await response.aread() await storage.store(first_key, response=response, request=first_request, metadata=dummy_metadata) + assert await storage.retreive(first_key) is not None await asleep(2) await storage.store(second_key, response=response, request=second_request, metadata=dummy_metadata) @@ -127,6 +128,7 @@ async def test_redisstorage_expired(): await response.aread() await storage.store(first_key, response=response, request=first_request, metadata=dummy_metadata) + assert await storage.retreive(first_key) is not None await asleep(2) await storage.store(second_key, response=response, request=second_request, metadata=dummy_metadata) @@ -147,6 +149,7 @@ async def test_sqlite_expired(): await response.aread() await storage.store(first_key, response=response, request=first_request, metadata=dummy_metadata) + assert await storage.retreive(first_key) is not None await asleep(2) await storage.store(second_key, response=response, request=second_request, metadata=dummy_metadata) diff --git a/tests/_sync/test_storages.py b/tests/_sync/test_storages.py index b03062d7..6f92895f 100644 --- a/tests/_sync/test_storages.py +++ b/tests/_sync/test_storages.py @@ -105,6 +105,7 @@ def test_filestorage_expired(): response.read() storage.store(first_key, response=response, request=first_request, metadata=dummy_metadata) + assert storage.retreive(first_key) is not None sleep(2) storage.store(second_key, response=response, request=second_request, metadata=dummy_metadata) @@ -127,6 +128,7 @@ def test_redisstorage_expired(): response.read() storage.store(first_key, response=response, request=first_request, metadata=dummy_metadata) + assert storage.retreive(first_key) is not None sleep(2) storage.store(second_key, response=response, request=second_request, metadata=dummy_metadata) @@ -147,6 +149,7 @@ def test_sqlite_expired(): response.read() storage.store(first_key, response=response, request=first_request, metadata=dummy_metadata) + assert storage.retreive(first_key) is not None sleep(2) storage.store(second_key, response=response, request=second_request, metadata=dummy_metadata)