变更
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
from unittest import mock
|
||||
|
||||
from scrapy.settings import Settings
|
||||
|
||||
from scrapy_redis import defaults
|
||||
from scrapy_redis.connection import from_settings, get_redis, get_redis_from_settings
|
||||
|
||||
|
||||
class TestGetRedis:
|
||||
|
||||
def test_default_instance(self):
|
||||
server = get_redis()
|
||||
assert isinstance(server, defaults.REDIS_CLS)
|
||||
|
||||
def test_custom_class(self):
|
||||
client_cls = mock.Mock()
|
||||
server = get_redis(param="foo", redis_cls=client_cls)
|
||||
assert server is client_cls.return_value
|
||||
client_cls.assert_called_with(param="foo")
|
||||
|
||||
def test_from_url(self):
|
||||
client_cls = mock.Mock()
|
||||
url = "redis://localhost"
|
||||
server = get_redis(redis_cls=client_cls, url=url, param="foo")
|
||||
assert server is client_cls.from_url.return_value
|
||||
client_cls.from_url.assert_called_with(url, param="foo")
|
||||
|
||||
|
||||
class TestFromSettings:
|
||||
|
||||
def setup(self):
|
||||
self.redis_cls = mock.Mock()
|
||||
self.expected_params = {
|
||||
"timeout": 0,
|
||||
"flag": False,
|
||||
}
|
||||
self.settings = Settings(
|
||||
{
|
||||
"REDIS_PARAMS": dict(self.expected_params, redis_cls=self.redis_cls),
|
||||
}
|
||||
)
|
||||
|
||||
def test_redis_cls_default(self):
|
||||
server = from_settings(Settings())
|
||||
assert isinstance(server, defaults.REDIS_CLS)
|
||||
|
||||
def test_redis_cls_custom_path(self):
|
||||
self.settings["REDIS_PARAMS"]["redis_cls"] = "unittest.mock.Mock"
|
||||
server = from_settings(self.settings)
|
||||
assert isinstance(server, mock.Mock)
|
||||
|
||||
def test_default_params(self):
|
||||
server = from_settings(self.settings)
|
||||
assert server is self.redis_cls.return_value
|
||||
self.redis_cls.assert_called_with(
|
||||
**dict(defaults.REDIS_PARAMS, **self.expected_params)
|
||||
)
|
||||
|
||||
def test_override_default_params(self):
|
||||
for key, _ in defaults.REDIS_PARAMS.items():
|
||||
self.expected_params[key] = self.settings["REDIS_PARAMS"][key] = object()
|
||||
|
||||
server = from_settings(self.settings)
|
||||
assert server is self.redis_cls.return_value
|
||||
self.redis_cls.assert_called_with(**self.expected_params)
|
||||
|
||||
|
||||
def test_get_server_from_settings_alias():
|
||||
assert from_settings is get_redis_from_settings
|
||||
Reference in New Issue
Block a user