From 86a532ee03d0793c1653b493a21267cc6b608abd Mon Sep 17 00:00:00 2001 From: Tiago Date: Mon, 25 Oct 2021 18:28:59 -0300 Subject: [PATCH] CLI tests for https://github.com/ansible/receptor/issues/431 --- receptorctl/tests/test_cli.py | 45 ++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/receptorctl/tests/test_cli.py b/receptorctl/tests/test_cli.py index 5cafe057b..33bfc13f4 100644 --- a/receptorctl/tests/test_cli.py +++ b/receptorctl/tests/test_cli.py @@ -3,7 +3,7 @@ # The goal is to write tests following the click documentation: # https://click.palletsprojects.com/en/8.0.x/testing/ -import pytest +import pytest, json @pytest.mark.usefixtures("receptor_mesh_mesh1") @@ -25,3 +25,46 @@ def test_cmd_status(self, invoke_as_json): ) == set( json_output.keys() ), "The command returned unexpected keys from json output" + + def test_cmd_ping(self, invoke): + result = invoke(commands.ping, ["node2"]) + assert result.exit_code == 0 + assert "Reply from node2 in" in result.output + + @pytest.mark.skip( + reason="skip code is 0 bug related here https://github.com/ansible/receptor/issues/431" + ) + def test_cmd_work_missing_subcommand(self, invoke): + result = invoke(commands.work, []) + assert result.exit_code != 0 + assert "Usage: cli work [OPTIONS] COMMAND [ARGS]..." in result.output + + @pytest.mark.skip( + reason="skip code is 0 bug related here https://github.com/ansible/receptor/issues/431" + ) + @pytest.mark.parametrize( + "command, error_message", + [ + ("cancel", "No unit IDs supplied: Not doing anything"), + ("release", "No unit IDs supplied: Not doing anything"), + ("results", "Usage: cli work results [OPTIONS] UNIT_ID"), + ("submit", "Usage: cli work submit [OPTIONS] WORKTYPE [CMDPARAMS]"), + ], + ) + def test_cmd_work_missing_param(self, invoke, command, error_message): + result = invoke(commands.work, [command]) + assert result.exit_code != 0 + assert error_message in result.stdout + + def test_cmd_work_cancel_successfully(self, invoke): + # Require fixture with a node running work + pass + + def test_cmd_work_list_empty_work_unit(self, invoke): + result = invoke(commands.work, ["list"]) + assert result.exit_code == 0 + assert json.loads(result.output) == {} + + def test_cmd_work_list_successfully(self, invoke): + # Require fixture with a node running work + pass