未验证 提交 9fb60b7f 编写于 作者: R Roman Donchenko 提交者: GitHub

tests/python: improve reporting when a command fails (#6718)

* represent the command accurately using shell quoting;
* show the exit code;
* show both stdout and stderr.
上级 74b0b96a
......@@ -4,6 +4,7 @@
import logging
import os
import shlex
from enum import Enum
from http import HTTPStatus
from pathlib import Path
......@@ -103,12 +104,13 @@ def _run(command, capture_output=True):
proc = run(_command) # nosec
return stdout, stderr
except CalledProcessError as exc:
stderr = exc.stderr.decode() or exc.stdout.decode() if capture_output else "see above"
pytest.exit(
f"Command failed: {command}.\n"
f"Error message: {stderr}.\n"
"Add `-s` option to see more details"
)
message = f"Command failed: {' '.join(map(shlex.quote, _command))}."
message += f"\nExit code: {exc.returncode}"
if capture_output:
message += f"\nStandard output:\n{exc.stdout.decode()}"
message += f"\nStandard error:\n{exc.stderr.decode()}"
pytest.exit(message)
def _kube_get_server_pod_name():
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册