本文整理匯總了Python中rediscluster.nodemanager.NodeManager.get_redis_link方法的典型用法代碼示例。如果您正苦於以下問題:Python NodeManager.get_redis_link方法的具體用法?Python NodeManager.get_redis_link怎麽用?Python NodeManager.get_redis_link使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類rediscluster.nodemanager.NodeManager
的用法示例。
在下文中一共展示了NodeManager.get_redis_link方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: test_init_slots_cache_slots_collision
# 需要導入模塊: from rediscluster.nodemanager import NodeManager [as 別名]
# 或者: from rediscluster.nodemanager.NodeManager import get_redis_link [as 別名]
def test_init_slots_cache_slots_collision():
"""
Test that if 2 nodes do not agree on the same slots setup it should raise an error.
In this test both nodes will say that the first slots block should be bound to different
servers.
"""
n = NodeManager(startup_nodes=[
{"host": "127.0.0.1", "port": 7000},
{"host": "127.0.0.1", "port": 7001},
])
def monkey_link(host=None, port=None, *args, **kwargs):
"""
Helper function to return custom slots cache data from different redis nodes
"""
if port == 7000:
result = [[0, 5460, [b'127.0.0.1', 7000], [b'127.0.0.1', 7003]],
[5461, 10922, [b'127.0.0.1', 7001], [b'127.0.0.1', 7004]]]
elif port == 7001:
result = [[0, 5460, [b'127.0.0.1', 7001], [b'127.0.0.1', 7003]],
[5461, 10922, [b'127.0.0.1', 7000], [b'127.0.0.1', 7004]]]
else:
result = []
r = StrictRedisCluster(host=host, port=port, decode_responses=True)
orig_execute_command = r.execute_command
def execute_command(*args, **kwargs):
if args == ("cluster", "slots"):
return result
elif args == ('CONFIG GET', 'cluster-require-full-coverage'):
return {'cluster-require-full-coverage': 'yes'}
else:
return orig_execute_command(*args, **kwargs)
r.execute_command = execute_command
return r
n.get_redis_link = monkey_link
with pytest.raises(RedisClusterException) as ex:
n.initialize()
assert unicode(ex.value).startswith("startup_nodes could not agree on a valid slots cache."), unicode(ex.value)