File size: 866 Bytes
2780361
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import os
import subprocess

from wargames_env.server.process_manager import ProcessManager


def test_is_pid_alive_treats_zombie_process_as_dead(monkeypatch):
    monkeypatch.setattr(os, "kill", lambda pid, signal: None)

    def fake_run(args, **kwargs):
        return subprocess.CompletedProcess(
            args=args, returncode=0, stdout="Z\n", stderr=""
        )

    monkeypatch.setattr(subprocess, "run", fake_run)

    assert ProcessManager._is_pid_alive(1234) is False


def test_is_pid_alive_accepts_running_process(monkeypatch):
    monkeypatch.setattr(os, "kill", lambda pid, signal: None)

    def fake_run(args, **kwargs):
        return subprocess.CompletedProcess(
            args=args, returncode=0, stdout="Sl\n", stderr=""
        )

    monkeypatch.setattr(subprocess, "run", fake_run)

    assert ProcessManager._is_pid_alive(1234) is True