diff options
Diffstat (limited to 'tests/test_cluster.py')
-rw-r--r-- | tests/test_cluster.py | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/tests/test_cluster.py b/tests/test_cluster.py index b76ed80..4087d33 100644 --- a/tests/test_cluster.py +++ b/tests/test_cluster.py @@ -84,6 +84,7 @@ def get_mocked_redis_client(func=None, *args, **kwargs): """ cluster_slots = kwargs.pop("cluster_slots", default_cluster_slots) coverage_res = kwargs.pop("coverage_result", "yes") + cluster_enabled = kwargs.pop("cluster_enabled", True) with patch.object(Redis, "execute_command") as execute_command_mock: def execute_command(*_args, **_kwargs): @@ -92,7 +93,9 @@ def get_mocked_redis_client(func=None, *args, **kwargs): return mock_cluster_slots elif _args[0] == "COMMAND": return {"get": [], "set": []} - elif _args[1] == "cluster-require-full-coverage": + elif _args[0] == "INFO": + return {"cluster_enabled": cluster_enabled} + elif len(_args) > 1 and _args[1] == "cluster-require-full-coverage": return {"cluster-require-full-coverage": coverage_res} elif func is not None: return func(*args, **kwargs) @@ -1974,6 +1977,17 @@ class TestNodesManager: assert len(n_manager.nodes_cache) == 6 + def test_init_slots_cache_cluster_mode_disabled(self): + """ + Test that creating a RedisCluster failes if one of the startup nodes + has cluster mode disabled + """ + with pytest.raises(RedisClusterException) as e: + get_mocked_redis_client( + host=default_host, port=default_port, cluster_enabled=False + ) + assert "Cluster mode is not enabled on this node" in str(e.value) + def test_empty_startup_nodes(self): """ It should not be possible to create a node manager with no nodes @@ -2044,6 +2058,8 @@ class TestNodesManager: def execute_command(*args, **kwargs): if args[0] == "CLUSTER SLOTS": return result + elif args[0] == "INFO": + return {"cluster_enabled": True} elif args[1] == "cluster-require-full-coverage": return {"cluster-require-full-coverage": "yes"} else: @@ -2108,6 +2124,8 @@ class TestNodesManager: ["127.0.0.1", 7002, "node_2"], ], ] + elif args[0] == "INFO": + return {"cluster_enabled": True} elif args[1] == "cluster-require-full-coverage": return {"cluster-require-full-coverage": "yes"} |