Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion kcidev/subcommands/testretry.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,10 @@ def testretry(ctx, nodeid):
logging.info("Test retry initiated successfully")
click.secho(resp["message"], fg="green")
else:
logging.warning("No response message from retry request")
# send_jobretry already reported the specific API error, if any
logging.error(f"Test retry request for node {nodeid} failed")
kci_err(f"Test retry request for node {nodeid} failed")
raise click.Abort()


if __name__ == "__main__":
Expand Down
30 changes: 30 additions & 0 deletions tests/test_testretry.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
from unittest.mock import patch

from click.testing import CliRunner

from kcidev.subcommands.testretry import testretry as retry_command

OBJ = {
"CFG": {"staging": {"pipeline": "https://example.test/", "token": "t"}},
"INSTANCE": "staging",
}


def _invoke():
return CliRunner().invoke(retry_command, ["--nodeid", "n1"], obj=dict(OBJ))


def test_testretry_success_prints_message():
with patch(
"kcidev.subcommands.testretry.send_jobretry", return_value={"message": "OK"}
):
result = _invoke()
assert result.exit_code == 0
assert "OK" in result.output


def test_testretry_failure_exits_nonzero():
with patch("kcidev.subcommands.testretry.send_jobretry", return_value=None):
result = _invoke()
assert result.exit_code != 0
assert "No response message" not in result.output
Loading