# # Copyright 2023-present ScyllaDB # # SPDX-License-Identifier: LicenseRef-ScyllaDB-Source-Available-1.0 # from test.nodetool.rest_api_mock import expected_request from test.nodetool.utils import check_nodetool_fails_with # These are simple smoke tests, because automatically testing help is next to impossible. def test_help(nodetool): res = nodetool("help", expected_requests=[ # These requests are sometimes sent by Cassandra nodetool when invoking help # This looks like a new connection to JMX. expected_request("GET", "/column_family/", response=[], multiple=expected_request.ANY), expected_request("GET", "/stream_manager/", response=[], multiple=expected_request.ANY), ]) assert res.stdout def test_help_command(nodetool): res = nodetool("help", "version") assert res.stdout def test_help_nonexistent_command(request, nodetool): if request.config.getoption("nodetool") == "scylla": check_nodetool_fails_with( nodetool, ("help", "foo",), {}, ["error processing arguments: unknown command foo"]) else: res = nodetool("help", "foo") assert res.stdout == "Unknown command foo\n\n" def test_help_command_too_many_args(nodetool, scylla_only): check_nodetool_fails_with( nodetool, ("help", "compact", "foo", "bar"), {}, ["error processing arguments: unknown command compact foo bar"]) def test_help_consistent(nodetool, scylla_only): for command in ("version", "compact", "settraceprobability"): res1 = nodetool("help", command) res2 = nodetool(command, "--help") assert res1.stdout == res2.stdout