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()