28 lines
939 B
Python
28 lines
939 B
Python
import subprocess
|
|
|
|
import pytest
|
|
|
|
from l4d2host.status import get_instance_status, map_active_state
|
|
|
|
|
|
def test_status_mapping() -> None:
|
|
assert map_active_state("active") == "running"
|
|
assert map_active_state("inactive") == "stopped"
|
|
assert map_active_state("failed") == "stopped"
|
|
assert map_active_state("weird") == "unknown"
|
|
|
|
|
|
def test_get_instance_status_uses_systemctl_helper(monkeypatch: pytest.MonkeyPatch) -> None:
|
|
calls: list[list[str]] = []
|
|
|
|
def fake_run_command(cmd, **kwargs):
|
|
del kwargs
|
|
calls.append(list(cmd))
|
|
return subprocess.CompletedProcess(cmd, 0, stdout="ActiveState=active\nSubState=running\n", stderr="")
|
|
|
|
monkeypatch.setattr("l4d2host.service_control.run_command", fake_run_command)
|
|
|
|
status = get_instance_status("alpha")
|
|
|
|
assert calls == [["sudo", "-n", "/usr/local/libexec/left4me/left4me-systemctl", "show", "alpha"]]
|
|
assert status.state == "running"
|