mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-02-02 20:59:06 +08:00
builder/utils/execute_cmd: remove useless return value and add a test
Since we never pass in subprocess.PIPE for stdin/stdout/stderr, subprocess.communicate() does nothing, and the return out/err tuple was always empty.
This commit is contained in:
@@ -44,12 +44,11 @@ def execute_cmd(args, output=None, cwd=None):
|
||||
|
||||
log.info("Executing the command \"%s\"%s" % (" ".join(args), out_log_msg))
|
||||
proc = subprocess.Popen(args, stdout=output, stderr=output, cwd=cwd)
|
||||
out, err = proc.communicate()
|
||||
proc.wait()
|
||||
|
||||
if proc.returncode != 0:
|
||||
err_msg = "Command '%s' returned non-zero value %d%s" % (args, proc.returncode, out_log_msg)
|
||||
raise RuntimeError(err_msg)
|
||||
return out, err
|
||||
|
||||
|
||||
def get_koji_config(mbs_config):
|
||||
|
||||
@@ -17,6 +17,22 @@ from module_build_service.scheduler.db_session import db_session
|
||||
from tests import read_staged_data, scheduler_init_data
|
||||
|
||||
|
||||
def test_execute_cmd(tmpdir, caplog):
|
||||
logfile = str(tmpdir / "out.log")
|
||||
with open(logfile, "w") as f:
|
||||
utils.execute_cmd(["echo", "hello"], output=f)
|
||||
|
||||
with open(logfile) as f:
|
||||
assert f.read() == "hello\n"
|
||||
|
||||
assert 'Executing the command "echo hello", output log: %s' % logfile in caplog.text
|
||||
|
||||
|
||||
def test_execute_cmd_fail():
|
||||
with pytest.raises(RuntimeError):
|
||||
utils.execute_cmd(["false"])
|
||||
|
||||
|
||||
@pytest.mark.parametrize("variation", ("none", "empty", "already_downloaded"))
|
||||
@patch("requests.get")
|
||||
@patch("koji.ClientSession")
|
||||
|
||||
Reference in New Issue
Block a user