From d19893d8e7353bcbf083fe9cde68754aab1bea13 Mon Sep 17 00:00:00 2001 From: dvora-h Date: Sun, 3 Apr 2022 16:36:06 +0300 Subject: [PATCH 1/2] skip tests on enterprise --- redis/client.py | 1 + redis/commands/core.py | 3 +++ tests/conftest.py | 6 +++--- tests/test_cluster.py | 26 ++++++++++++++++++++++++++ tests/test_command_parser.py | 3 ++- tests/test_commands.py | 35 +++++++++++++++++++++++++++++++++++ tests/test_lock.py | 2 +- tests/test_scripting.py | 4 +++- tests/test_search.py | 14 ++++++++++++-- tox.ini | 1 + 10 files changed, 87 insertions(+), 8 deletions(-) diff --git a/redis/client.py b/redis/client.py index 8c17665dbc..8dcc2a9212 100755 --- a/redis/client.py +++ b/redis/client.py @@ -735,6 +735,7 @@ class AbstractRedis: "CONFIG RESETSTAT": bool_ok, "CONFIG SET": bool_ok, "DEBUG OBJECT": parse_debug_object, + "DPING": bool_ok, "FUNCTION DELETE": bool_ok, "FUNCTION FLUSH": bool_ok, "FUNCTION LOAD": bool_ok, diff --git a/redis/commands/core.py b/redis/commands/core.py index c367827359..005f6b652e 100644 --- a/redis/commands/core.py +++ b/redis/commands/core.py @@ -1052,6 +1052,9 @@ def ping(self, **kwargs) -> ResponseT: """ return self.execute_command("PING", **kwargs) + def dping(self) -> bool: + return self.execute_command("DPING") + def quit(self, **kwargs) -> ResponseT: """ Ask the server to close the connection. diff --git a/tests/conftest.py b/tests/conftest.py index 3b66adf46c..037cad2a90 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -120,10 +120,10 @@ def pytest_addoption(parser): def _get_info(redis_url): client = redis.Redis.from_url(redis_url) info = client.info() - cmds = [command.upper() for command in client.command().keys()] - if "dping" in cmds: + try: + client.dping() info["enterprise"] = True - else: + except redis.ResponseError: info["enterprise"] = False client.connection_pool.disconnect() return info diff --git a/tests/test_cluster.py b/tests/test_cluster.py index 70cbe4f9c4..13ea2fa8f5 100644 --- a/tests/test_cluster.py +++ b/tests/test_cluster.py @@ -629,6 +629,7 @@ def test_get_node_from_key(self, r): assert replica.server_type == REPLICA assert replica in slot_nodes + @skip_if_redis_enterprise() def test_not_require_full_coverage_cluster_down_error(self, r): """ When require_full_coverage is set to False (default client config) and not @@ -840,6 +841,7 @@ def test_cluster_pubsub_numsub(self, r): channels = [(b"foo", 1), (b"bar", 2), (b"baz", 3)] assert r.pubsub_numsub("foo", "bar", "baz", target_nodes="all") == channels + @skip_if_redis_enterprise() def test_cluster_slots(self, r): mock_all_nodes_resp(r, default_cluster_slots) cluster_slots = r.cluster_slots() @@ -848,17 +850,20 @@ def test_cluster_slots(self, r): assert cluster_slots.get((0, 8191)) is not None assert cluster_slots.get((0, 8191)).get("primary") == ("127.0.0.1", 7000) + @skip_if_redis_enterprise() def test_cluster_addslots(self, r): node = r.get_random_node() mock_node_resp(node, "OK") assert r.cluster_addslots(node, 1, 2, 3) is True @skip_if_server_version_lt("7.0.0") + @skip_if_redis_enterprise() def test_cluster_addslotsrange(self, r): node = r.get_random_node() mock_node_resp(node, "OK") assert r.cluster_addslotsrange(node, 1, 5) + @skip_if_redis_enterprise() def test_cluster_countkeysinslot(self, r): node = r.nodes_manager.get_node_from_slot(1) mock_node_resp(node, 2) @@ -868,6 +873,7 @@ def test_cluster_count_failure_report(self, r): mock_all_nodes_resp(r, 0) assert r.cluster_count_failure_report("node_0") == 0 + @skip_if_redis_enterprise() def test_cluster_delslots(self): cluster_slots = [ [ @@ -892,12 +898,14 @@ def test_cluster_delslots(self): assert node1.redis_connection.connection.read_response.called @skip_if_server_version_lt("7.0.0") + @skip_if_redis_enterprise() def test_cluster_delslotsrange(self, r): node = r.get_random_node() mock_node_resp(node, "OK") r.cluster_addslots(node, 1, 2, 3, 4, 5) assert r.cluster_delslotsrange(1, 5) + @skip_if_redis_enterprise() def test_cluster_failover(self, r): node = r.get_random_node() mock_node_resp(node, "OK") @@ -907,20 +915,24 @@ def test_cluster_failover(self, r): with pytest.raises(RedisError): r.cluster_failover(node, "FORCT") + @skip_if_redis_enterprise() def test_cluster_info(self, r): info = r.cluster_info() assert isinstance(info, dict) assert info["cluster_state"] == "ok" + @skip_if_redis_enterprise() def test_cluster_keyslot(self, r): mock_all_nodes_resp(r, 12182) assert r.cluster_keyslot("foo") == 12182 + @skip_if_redis_enterprise() def test_cluster_meet(self, r): node = r.get_default_node() mock_node_resp(node, "OK") assert r.cluster_meet("127.0.0.1", 6379) is True + @skip_if_redis_enterprise() def test_cluster_nodes(self, r): response = ( "c8253bae761cb1ecb2b61857d85dfe455a0fec8b 172.17.0.7:7006 " @@ -949,6 +961,7 @@ def test_cluster_nodes(self, r): == "c8253bae761cb1ecb2b61857d85dfe455a0fec8b" ) + @skip_if_redis_enterprise() def test_cluster_replicate(self, r): node = r.get_random_node() all_replicas = r.get_replicas() @@ -961,6 +974,7 @@ def test_cluster_replicate(self, r): else: assert results is True + @skip_if_redis_enterprise() def test_cluster_reset(self, r): mock_all_nodes_resp(r, "OK") assert r.cluster_reset() is True @@ -969,6 +983,7 @@ def test_cluster_reset(self, r): for res in all_results.values(): assert res is True + @skip_if_redis_enterprise() def test_cluster_save_config(self, r): node = r.get_random_node() all_nodes = r.get_nodes() @@ -978,6 +993,7 @@ def test_cluster_save_config(self, r): for res in all_results.values(): assert res is True + @skip_if_redis_enterprise() def test_cluster_get_keys_in_slot(self, r): response = [b"{foo}1", b"{foo}2"] node = r.nodes_manager.get_node_from_slot(12182) @@ -985,6 +1001,7 @@ def test_cluster_get_keys_in_slot(self, r): keys = r.cluster_get_keys_in_slot(12182, 4) assert keys == response + @skip_if_redis_enterprise() def test_cluster_set_config_epoch(self, r): mock_all_nodes_resp(r, "OK") assert r.cluster_set_config_epoch(3) is True @@ -992,6 +1009,7 @@ def test_cluster_set_config_epoch(self, r): for res in all_results.values(): assert res is True + @skip_if_redis_enterprise() def test_cluster_setslot(self, r): node = r.get_random_node() mock_node_resp(node, "OK") @@ -1009,6 +1027,7 @@ def test_cluster_setslot_stable(self, r): assert r.cluster_setslot_stable(12182) is True assert node.redis_connection.connection.read_response.called + @skip_if_redis_enterprise() def test_cluster_replicas(self, r): response = [ b"01eca22229cf3c652b6fca0d09ff6941e0d2e3 " @@ -1040,6 +1059,7 @@ def test_cluster_links(self, r): for i in range(0, len(res) - 1, 2): assert res[i][3] == res[i + 1][3] + @skip_if_redis_enterprise() def test_readonly(self): r = get_mocked_redis_client(host=default_host, port=default_port) mock_all_nodes_resp(r, "OK") @@ -1050,6 +1070,7 @@ def test_readonly(self): for replica in r.get_replicas(): assert replica.redis_connection.connection.read_response.called + @skip_if_redis_enterprise() def test_readwrite(self): r = get_mocked_redis_client(host=default_host, port=default_port) mock_all_nodes_resp(r, "OK") @@ -1060,6 +1081,7 @@ def test_readwrite(self): for replica in r.get_replicas(): assert replica.redis_connection.connection.read_response.called + @skip_if_redis_enterprise() def test_bgsave(self, r): assert r.bgsave() sleep(0.3) @@ -1144,10 +1166,12 @@ def test_memory_usage(self, r): assert isinstance(r.memory_usage("foo"), int) @skip_if_server_version_lt("4.0.0") + @skip_if_redis_enterprise() def test_memory_malloc_stats(self, r): assert r.memory_malloc_stats() @skip_if_server_version_lt("4.0.0") + @skip_if_redis_enterprise() def test_memory_stats(self, r): # put a key into the current db to make sure that "db." # has data @@ -1169,6 +1193,7 @@ def test_memory_doctor(self, r): with pytest.raises(NotImplementedError): r.memory_doctor() + @skip_if_redis_enterprise() def test_lastsave(self, r): node = r.get_primaries()[0] assert isinstance(r.lastsave(target_nodes=node), datetime.datetime) @@ -1211,6 +1236,7 @@ def test_client_pause(self, r): r.client_pause(timeout="not an integer", target_nodes=node) @skip_if_server_version_lt("6.2.0") + @skip_if_redis_enterprise() def test_client_unpause(self, r): assert r.client_unpause() diff --git a/tests/test_command_parser.py b/tests/test_command_parser.py index ab050a74e7..1457e27531 100644 --- a/tests/test_command_parser.py +++ b/tests/test_command_parser.py @@ -2,7 +2,7 @@ from redis.commands import CommandsParser -from .conftest import skip_if_server_version_lt +from .conftest import skip_if_redis_enterprise, skip_if_server_version_lt class TestCommandsParser: @@ -21,6 +21,7 @@ def test_get_keys_predetermined_key_location(self, r): assert commands_parser.get_keys(r, *args3) == ["foo", "bar", "foobar"] @pytest.mark.filterwarnings("ignore:ResponseError") + @skip_if_redis_enterprise() def test_get_moveable_keys(self, r): commands_parser = CommandsParser(r) args1 = [ diff --git a/tests/test_commands.py b/tests/test_commands.py index de6bcead1c..a0d57f0441 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -65,6 +65,7 @@ def test_case_insensitive_command_names(self, r): class TestRedisCommands: + @skip_if_redis_enterprise() def test_auth(self, r, request): username = "redis-py-auth" @@ -104,6 +105,7 @@ def test_acl_cat_with_category(self, r): assert "get" in commands @skip_if_server_version_lt("7.0.0") + @skip_if_redis_enterprise() def test_acl_dryrun(self, r): username = "redis-py-user" r.acl_setuser( @@ -424,6 +426,7 @@ def test_client_id(self, r): @pytest.mark.onlynoncluster @skip_if_server_version_lt("6.2.0") + @skip_if_redis_enterprise() def test_client_trackinginfo(self, r): res = r.client_trackinginfo() assert len(res) > 2 @@ -431,6 +434,7 @@ def test_client_trackinginfo(self, r): @pytest.mark.onlynoncluster @skip_if_server_version_lt("6.0.0") + @skip_if_redis_enterprise() def test_client_tracking(self, r, r2): # simple case @@ -613,6 +617,7 @@ def test_client_pause(self, r): r.client_pause(timeout="not an integer") @skip_if_server_version_lt("6.2.0") + @skip_if_redis_enterprise() def test_client_pause_all(self, r, r2): assert r.client_pause(1, all=False) assert r2.set("foo", "bar") @@ -682,6 +687,7 @@ def test_config_set(self, r): assert r.config_get()["timeout"] == "0" @skip_if_server_version_lt("6.0.0") + @skip_if_redis_enterprise() def test_failover(self, r): with pytest.raises(NotImplementedError): r.failover() @@ -721,6 +727,7 @@ def test_lolwut(self, r): @pytest.mark.onlynoncluster @skip_if_server_version_lt("6.2.0") + @skip_if_redis_enterprise() def test_reset(self, r): assert r.reset() == "RESET" @@ -739,6 +746,7 @@ def test_quit(self, r): assert r.quit() @skip_if_server_version_lt("2.8.12") + @skip_if_redis_enterprise() @pytest.mark.onlynoncluster def test_role(self, r): assert r.role()[0] == b"master" @@ -746,6 +754,7 @@ def test_role(self, r): assert isinstance(r.role()[2], list) @pytest.mark.onlynoncluster + @skip_if_redis_enterprise() def test_select(self, r): assert r.select(5) assert r.select(2) @@ -1544,6 +1553,7 @@ def test_setrange(self, r): @skip_if_server_version_lt("6.0.0") @skip_if_server_version_gte("7.0.0") + @skip_if_redis_enterprise() def test_stralgo_lcs(self, r): key1 = "{foo}key1" key2 = "{foo}key2" @@ -1577,6 +1587,7 @@ def test_stralgo_lcs(self, r): @skip_if_server_version_lt("6.0.0") @skip_if_server_version_gte("7.0.0") + @skip_if_redis_enterprise() def test_stralgo_negative(self, r): with pytest.raises(exceptions.DataError): r.stralgo("ISSUB", "value1", "value2") @@ -2057,12 +2068,14 @@ def test_sunionstore(self, r): assert r.smembers("c") == {b"1", b"2", b"3"} @skip_if_server_version_lt("1.0.0") + @skip_if_redis_enterprise() def test_debug_segfault(self, r): with pytest.raises(NotImplementedError): r.debug_segfault() @pytest.mark.onlynoncluster @skip_if_server_version_lt("3.2.0") + @skip_if_redis_enterprise() def test_script_debug(self, r): with pytest.raises(NotImplementedError): r.script_debug() @@ -2928,64 +2941,79 @@ def test_sort_issue_924(self, r): r.execute_command("SORT", "issue#924") @pytest.mark.onlynoncluster + @skip_if_redis_enterprise() def test_cluster_addslots(self, mock_cluster_resp_ok): assert mock_cluster_resp_ok.cluster("ADDSLOTS", 1) is True @pytest.mark.onlynoncluster + @skip_if_redis_enterprise() def test_cluster_count_failure_reports(self, mock_cluster_resp_int): assert isinstance( mock_cluster_resp_int.cluster("COUNT-FAILURE-REPORTS", "node"), int ) @pytest.mark.onlynoncluster + @skip_if_redis_enterprise() def test_cluster_countkeysinslot(self, mock_cluster_resp_int): assert isinstance(mock_cluster_resp_int.cluster("COUNTKEYSINSLOT", 2), int) @pytest.mark.onlynoncluster + @skip_if_redis_enterprise() def test_cluster_delslots(self, mock_cluster_resp_ok): assert mock_cluster_resp_ok.cluster("DELSLOTS", 1) is True @pytest.mark.onlynoncluster + @skip_if_redis_enterprise() def test_cluster_failover(self, mock_cluster_resp_ok): assert mock_cluster_resp_ok.cluster("FAILOVER", 1) is True @pytest.mark.onlynoncluster + @skip_if_redis_enterprise() def test_cluster_forget(self, mock_cluster_resp_ok): assert mock_cluster_resp_ok.cluster("FORGET", 1) is True @pytest.mark.onlynoncluster + @skip_if_redis_enterprise() def test_cluster_info(self, mock_cluster_resp_info): assert isinstance(mock_cluster_resp_info.cluster("info"), dict) @pytest.mark.onlynoncluster + @skip_if_redis_enterprise() def test_cluster_keyslot(self, mock_cluster_resp_int): assert isinstance(mock_cluster_resp_int.cluster("keyslot", "asdf"), int) @pytest.mark.onlynoncluster + @skip_if_redis_enterprise() def test_cluster_meet(self, mock_cluster_resp_ok): assert mock_cluster_resp_ok.cluster("meet", "ip", "port", 1) is True @pytest.mark.onlynoncluster + @skip_if_redis_enterprise() def test_cluster_nodes(self, mock_cluster_resp_nodes): assert isinstance(mock_cluster_resp_nodes.cluster("nodes"), dict) @pytest.mark.onlynoncluster + @skip_if_redis_enterprise() def test_cluster_replicate(self, mock_cluster_resp_ok): assert mock_cluster_resp_ok.cluster("replicate", "nodeid") is True @pytest.mark.onlynoncluster + @skip_if_redis_enterprise() def test_cluster_reset(self, mock_cluster_resp_ok): assert mock_cluster_resp_ok.cluster("reset", "hard") is True @pytest.mark.onlynoncluster + @skip_if_redis_enterprise() def test_cluster_saveconfig(self, mock_cluster_resp_ok): assert mock_cluster_resp_ok.cluster("saveconfig") is True @pytest.mark.onlynoncluster + @skip_if_redis_enterprise() def test_cluster_setslot(self, mock_cluster_resp_ok): assert mock_cluster_resp_ok.cluster("setslot", 1, "IMPORTING", "nodeid") is True @pytest.mark.onlynoncluster + @skip_if_redis_enterprise() def test_cluster_slaves(self, mock_cluster_resp_slaves): assert isinstance(mock_cluster_resp_slaves.cluster("slaves", "nodeid"), dict) @@ -3003,6 +3031,7 @@ def test_readonly_invalid_cluster_state(self, r): @pytest.mark.onlynoncluster @skip_if_server_version_lt("3.0.0") + @skip_if_redis_enterprise() def test_readonly(self, mock_cluster_resp_ok): assert mock_cluster_resp_ok.readonly() is True @@ -4341,6 +4370,7 @@ def test_memory_doctor(self, r): r.memory_doctor() @skip_if_server_version_lt("4.0.0") + @skip_if_redis_enterprise() def test_memory_malloc_stats(self, r): if skip_if_redis_enterprise().args[0] is True: with pytest.raises(redis.exceptions.ResponseError): @@ -4350,6 +4380,7 @@ def test_memory_malloc_stats(self, r): assert r.memory_malloc_stats() @skip_if_server_version_lt("4.0.0") + @skip_if_redis_enterprise() def test_memory_stats(self, r): # put a key into the current db to make sure that "db." # has data @@ -4380,6 +4411,7 @@ def test_module_list(self, r): assert isinstance(x, dict) @skip_if_server_version_lt("2.8.13") + @skip_if_redis_enterprise() def test_command_count(self, r): res = r.command_count() assert isinstance(res, int) @@ -4392,6 +4424,7 @@ def test_command_docs(self, r): @pytest.mark.onlynoncluster @skip_if_server_version_lt("2.8.13") + @skip_if_redis_enterprise() def test_command_getkeys(self, r): res = r.command_getkeys("MSET", "a", "b", "c", "d", "e", "f") assert res == ["a", "c", "e"] @@ -4483,6 +4516,7 @@ def test_replicaof(self, r): @pytest.mark.replica @skip_if_server_version_lt("2.8.0") + @skip_if_redis_enterprise() def test_sync(self, r): r2 = redis.Redis(port=6380, decode_responses=False) res = r2.sync() @@ -4490,6 +4524,7 @@ def test_sync(self, r): @pytest.mark.replica @skip_if_server_version_lt("2.8.0") + @skip_if_redis_enterprise() def test_psync(self, r): r2 = redis.Redis(port=6380, decode_responses=False) res = r2.psync(r2.client_id(), 1) diff --git a/tests/test_lock.py b/tests/test_lock.py index 01ecb880b8..0a63f1e06c 100644 --- a/tests/test_lock.py +++ b/tests/test_lock.py @@ -100,7 +100,7 @@ def test_float_timeout(self, r): def test_blocking_timeout(self, r): lock1 = self.get_lock(r, "foo") assert lock1.acquire(blocking=False) - bt = 0.2 + bt = 0.4 sleep = 0.05 lock2 = self.get_lock(r, "foo", sleep=sleep, blocking_timeout=bt) start = time.monotonic() diff --git a/tests/test_scripting.py b/tests/test_scripting.py index 8f6a24cdae..1ccd99a003 100644 --- a/tests/test_scripting.py +++ b/tests/test_scripting.py @@ -3,7 +3,7 @@ import redis from redis import exceptions from redis.commands.core import Script -from tests.conftest import skip_if_server_version_lt +from tests.conftest import skip_if_redis_enterprise, skip_if_server_version_lt multiply_script = """ local value = redis.call('GET', KEYS[1]) @@ -66,6 +66,7 @@ def test_eval_multiply(self, r): assert r.eval(multiply_script, 1, "a", 3) == 6 @skip_if_server_version_lt("7.0.0") + @skip_if_redis_enterprise() @pytest.mark.onlynoncluster def test_eval_ro(self, r): r.set("a", "b") @@ -155,6 +156,7 @@ def test_evalsha(self, r): assert r.evalsha(sha, 1, "a", 3) == 6 @skip_if_server_version_lt("7.0.0") + @skip_if_redis_enterprise() @pytest.mark.onlynoncluster def test_evalsha_ro(self, r): r.set("a", "b") diff --git a/tests/test_search.py b/tests/test_search.py index b94ae058b2..da7a488e1e 100644 --- a/tests/test_search.py +++ b/tests/test_search.py @@ -24,7 +24,7 @@ from redis.commands.search.result import Result from redis.commands.search.suggestion import Suggestion -from .conftest import skip_ifmodversion_lt +from .conftest import skip_if_redis_enterprise, skip_ifmodversion_lt WILL_PLAY_TEXT = os.path.abspath( os.path.join(os.path.dirname(__file__), "testdata", "will_play_text.csv.bz2") @@ -389,6 +389,7 @@ def test_example(client): @pytest.mark.redismod +@skip_if_redis_enterprise() def test_auto_complete(client): n = 0 with open(TITLES_CSV) as f: @@ -948,7 +949,8 @@ def test_aggregations_groupby(client): res = client.ft().aggregate(req).rows[0] assert res[1] == "redis" - assert res[3] == "7" # (10+3+8)/3 + index = res.index("__generated_aliasavgrandom_num") + assert res[index + 1] == "7" # (10+3+8)/3 req = aggregations.AggregateRequest("redis").group_by( "@parent", @@ -1158,6 +1160,7 @@ def test_index_definition(client): @pytest.mark.redismod @pytest.mark.onlynoncluster +@skip_if_redis_enterprise() def testExpire(client): client.ft().create_index((TextField("txt", sortable=True),), temporary=4) ttl = client.execute_command("ft.debug", "TTL", "idx") @@ -1478,6 +1481,7 @@ def test_json_with_jsonpath(client): @pytest.mark.redismod @pytest.mark.onlynoncluster +@skip_if_redis_enterprise() def test_profile(client): client.ft().create_index((TextField("t"),)) client.ft().client.hset("1", "t", "hello") @@ -1529,6 +1533,7 @@ def test_profile_limited(client): @pytest.mark.redismod +@skip_ifmodversion_lt("2.4.3", "search") def test_vector_field(modclient): modclient.flushdb() modclient.ft().create_index( @@ -1550,6 +1555,7 @@ def test_vector_field(modclient): @pytest.mark.redismod +@skip_ifmodversion_lt("2.4.3", "search") def test_vector_field_error(modclient): modclient.flushdb() @@ -1563,6 +1569,7 @@ def test_vector_field_error(modclient): @pytest.mark.redismod +@skip_ifmodversion_lt("2.4.3", "search") def test_text_params(modclient): modclient.flushdb() modclient.ft().create_index((TextField("name"),)) @@ -1580,6 +1587,7 @@ def test_text_params(modclient): @pytest.mark.redismod +@skip_ifmodversion_lt("2.4.3", "search") def test_numeric_params(modclient): modclient.flushdb() modclient.ft().create_index((NumericField("numval"),)) @@ -1598,6 +1606,7 @@ def test_numeric_params(modclient): @pytest.mark.redismod +@skip_ifmodversion_lt("2.4.3", "search") def test_geo_params(modclient): modclient.flushdb() @@ -1616,6 +1625,7 @@ def test_geo_params(modclient): @pytest.mark.redismod +@skip_if_redis_enterprise() def test_search_commands_in_pipeline(client): p = client.ft().pipeline() p.create_index((TextField("txt"),)) diff --git a/tox.ini b/tox.ini index 1a3450bdaa..9ea8706f32 100644 --- a/tox.ini +++ b/tox.ini @@ -8,6 +8,7 @@ markers = ssl: marker for only the ssl tests replica: replica tests experimental: run only experimental tests + asyncio: marker for async tests [tox] minversion = 3.2.0 From 983c261fcfb82a4393dd530c67bf93259f87e1dd Mon Sep 17 00:00:00 2001 From: dvora-h Date: Sun, 3 Apr 2022 17:24:18 +0300 Subject: [PATCH 2/2] delete dping implementation --- redis/client.py | 1 - redis/commands/core.py | 3 --- tests/conftest.py | 2 +- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/redis/client.py b/redis/client.py index 8dcc2a9212..8c17665dbc 100755 --- a/redis/client.py +++ b/redis/client.py @@ -735,7 +735,6 @@ class AbstractRedis: "CONFIG RESETSTAT": bool_ok, "CONFIG SET": bool_ok, "DEBUG OBJECT": parse_debug_object, - "DPING": bool_ok, "FUNCTION DELETE": bool_ok, "FUNCTION FLUSH": bool_ok, "FUNCTION LOAD": bool_ok, diff --git a/redis/commands/core.py b/redis/commands/core.py index 005f6b652e..c367827359 100644 --- a/redis/commands/core.py +++ b/redis/commands/core.py @@ -1052,9 +1052,6 @@ def ping(self, **kwargs) -> ResponseT: """ return self.execute_command("PING", **kwargs) - def dping(self) -> bool: - return self.execute_command("DPING") - def quit(self, **kwargs) -> ResponseT: """ Ask the server to close the connection. diff --git a/tests/conftest.py b/tests/conftest.py index 037cad2a90..903e961b46 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -121,7 +121,7 @@ def _get_info(redis_url): client = redis.Redis.from_url(redis_url) info = client.info() try: - client.dping() + client.execute_command("DPING") info["enterprise"] = True except redis.ResponseError: info["enterprise"] = False