From 8597f013ebcad801216cbe9d62786cdddb7f4d6b Mon Sep 17 00:00:00 2001 From: Dave Gaeddert <dave.gaeddert@gmail.com> Date: Mon, 29 Nov 2021 11:19:22 -0600 Subject: [PATCH 1/2] Allow redis to set expires with an int arg --- cachecontrol/caches/redis_cache.py | 4 +++- tests/test_storage_redis.py | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/cachecontrol/caches/redis_cache.py b/cachecontrol/caches/redis_cache.py index 564c30e4..7bcb38a2 100644 --- a/cachecontrol/caches/redis_cache.py +++ b/cachecontrol/caches/redis_cache.py @@ -19,9 +19,11 @@ def get(self, key): def set(self, key, value, expires=None): if not expires: self.conn.set(key, value) - else: + elif isinstance(expires, datetime): expires = expires - datetime.utcnow() self.conn.setex(key, int(expires.total_seconds()), value) + else: + self.conn.setex(key, expires, value) def delete(self, key): self.conn.delete(key) diff --git a/tests/test_storage_redis.py b/tests/test_storage_redis.py index 4646be50..56db1e55 100644 --- a/tests/test_storage_redis.py +++ b/tests/test_storage_redis.py @@ -17,3 +17,7 @@ def setup(self): def test_set_expiration(self): self.cache.set("foo", "bar", expires=datetime(2014, 2, 2)) assert self.conn.setex.called + + def test_set_expiration_int(self): + self.cache.set("foo", "bar", expires=600) + assert self.conn.setex.called From e28436d6338ae47c76d0fe08b1daa44b60688234 Mon Sep 17 00:00:00 2001 From: Dave Gaeddert <dave.gaeddert@gmail.com> Date: Mon, 29 Nov 2021 11:24:21 -0600 Subject: [PATCH 2/2] Rename original test --- tests/test_storage_redis.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_storage_redis.py b/tests/test_storage_redis.py index 56db1e55..9ada01c6 100644 --- a/tests/test_storage_redis.py +++ b/tests/test_storage_redis.py @@ -14,7 +14,7 @@ def setup(self): self.conn = Mock() self.cache = RedisCache(self.conn) - def test_set_expiration(self): + def test_set_expiration_datetime(self): self.cache.set("foo", "bar", expires=datetime(2014, 2, 2)) assert self.conn.setex.called