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