summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-06-13 13:41:12 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2014-06-13 13:41:12 -0400
commit99ba222c385dc885f27d6a69b10453b1797913ca (patch)
treefddff345bcc9df38b9eb67f5ff3ccafbe9c8de91
parent9cb1c7016738b703c593628851ffe33efb7e0852 (diff)
downloaddogpile-cache-99ba222c385dc885f27d6a69b10453b1797913ca.tar.gz
- repair redis connect arguments and tests, including broken tests
from pr 16, add new test for pr 17.
-rw-r--r--dogpile/cache/backends/redis.py20
-rw-r--r--tests/cache/test_redis_backend.py16
2 files changed, 28 insertions, 8 deletions
diff --git a/dogpile/cache/backends/redis.py b/dogpile/cache/backends/redis.py
index e8b9969..b532356 100644
--- a/dogpile/cache/backends/redis.py
+++ b/dogpile/cache/backends/redis.py
@@ -118,13 +118,21 @@ class RedisBackend(CacheBackend):
# options present within, so here we disregard socket_timeout
# and others.
return redis.StrictRedis(connection_pool=self.connection_pool)
- elif self.url is not None:
- return redis.StrictRedis.from_url(url=self.url,
- socket_timeout=self.socket_timeout)
+
+ args = {}
+ if self.socket_timeout:
+ args['socket_timeout'] = self.socket_timeout
+
+ if self.url is not None:
+ args.update(url=self.url)
+ return redis.StrictRedis.from_url(**args)
else:
- return redis.StrictRedis(host=self.host, password=self.password,
- port=self.port, db=self.db,
- socket_timeout=self.socket_timeout)
+ args.update(
+ host=self.host, password=self.password,
+ port=self.port, db=self.db
+ )
+ return redis.StrictRedis(**args)
+
def get_mutex(self, key):
if self.distributed_lock:
diff --git a/tests/cache/test_redis_backend.py b/tests/cache/test_redis_backend.py
index d6dddc6..647bd1a 100644
--- a/tests/cache/test_redis_backend.py
+++ b/tests/cache/test_redis_backend.py
@@ -2,7 +2,7 @@ from dogpile.cache.region import _backend_loader
from ._fixtures import _GenericBackendTest, _GenericMutexTest
from unittest import TestCase
from nose import SkipTest
-from mock import patch
+from mock import patch, Mock
class _TestRedisConn(object):
@classmethod
@@ -93,10 +93,22 @@ class RedisConnectionTest(TestCase):
arguments = {
'host': '127.0.0.1',
'port': 6379,
- 'socket_timeout': 0.5
+ 'socket_timeout': 0.5,
+ 'password': None,
+ 'db': 0,
}
self._test_helper(MockStrictRedis, arguments)
+ def test_connect_with_connection_pool(self, MockStrictRedis):
+ pool = Mock()
+ arguments = {
+ 'connection_pool': pool,
+ 'socket_timeout': 0.5
+ }
+ expected_args = {'connection_pool': pool}
+ self._test_helper(MockStrictRedis, expected_args,
+ connection_args=arguments)
+
def test_connect_with_url(self, MockStrictRedis):
arguments = {
'url': 'redis://redis:password@127.0.0.1:6379/0'