24 lines
824 B
Python
24 lines
824 B
Python
import subprocess
|
|
from unittest.mock import patch
|
|
|
|
from applepy.subproc import run_text
|
|
|
|
|
|
@patch("applepy.subproc.subprocess.run")
|
|
def test_run_text_passes_cwd(mock_run: object, tmp_path) -> None:
|
|
mock_run.return_value = subprocess.CompletedProcess(args=[], returncode=0, stdout="", stderr="")
|
|
d = tmp_path / "work"
|
|
d.mkdir()
|
|
run_text(["/bin/true"], cwd=d)
|
|
mock_run.assert_called_once()
|
|
assert mock_run.call_args.kwargs.get("cwd") == str(d)
|
|
|
|
|
|
@patch("applepy.subproc.subprocess.run")
|
|
def test_run_text_timeout_message_includes_duration(mock_run: object) -> None:
|
|
mock_run.side_effect = subprocess.TimeoutExpired(cmd=["/bin/echo", "a"], timeout=99)
|
|
code, out, err = run_text(["/bin/echo", "a"], timeout=12.5)
|
|
assert code == 124
|
|
assert "12.5" in err
|
|
assert "timeout" in err.lower()
|