This commit is contained in:
Tasnim Kabir Sadik
2026-05-19 13:20:31 +06:00
parent a42f0b2e71
commit 800a8566db
5 changed files with 16 additions and 9 deletions

View File

@ -15,6 +15,17 @@ pytestmark = pytest.mark.integration
_env_loaded = False
def _wait_for_pid_dead(capsule: Capsule, pid: int, timeout: float = 5.0) -> bool:
deadline = time.monotonic() + timeout
while time.monotonic() < deadline:
result = capsule.commands.run(f"ps -p {pid} -o stat= 2>/dev/null || true")
state = result.stdout.strip()
if not state or state.startswith("Z"):
return True
time.sleep(0.2)
return False
def _ensure_env() -> None:
global _env_loaded
if _env_loaded:
@ -218,11 +229,7 @@ class TestCommands:
def test_kill_process(self):
handle = self.capsule.commands.run("sleep 30", background=True)
self.capsule.commands.kill(handle.pid)
time.sleep(0.5)
processes = self.capsule.commands.list()
pids = [p.pid for p in processes]
assert handle.pid not in pids
assert _wait_for_pid_dead(self.capsule, handle.pid)
def test_run_duration_ms(self):
result = self.capsule.commands.run("sleep 1")