diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-06-13 13:41:12 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-06-13 13:41:12 -0400 |
commit | 99ba222c385dc885f27d6a69b10453b1797913ca (patch) | |
tree | fddff345bcc9df38b9eb67f5ff3ccafbe9c8de91 | |
parent | 9cb1c7016738b703c593628851ffe33efb7e0852 (diff) | |
download | dogpile-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.py | 20 | ||||
-rw-r--r-- | tests/cache/test_redis_backend.py | 16 |
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' |