28 lines
870 B
Python
28 lines
870 B
Python
|
|
"""Tests for gateway runtime status tracking."""
|
||
|
|
|
||
|
|
import json
|
||
|
|
import os
|
||
|
|
|
||
|
|
from gateway import status
|
||
|
|
|
||
|
|
|
||
|
|
class TestGatewayPidState:
|
||
|
|
def test_write_pid_file_records_gateway_metadata(self, tmp_path, monkeypatch):
|
||
|
|
monkeypatch.setenv("HERMES_HOME", str(tmp_path))
|
||
|
|
|
||
|
|
status.write_pid_file()
|
||
|
|
|
||
|
|
payload = json.loads((tmp_path / "gateway.pid").read_text())
|
||
|
|
assert payload["pid"] == os.getpid()
|
||
|
|
assert payload["kind"] == "hermes-gateway"
|
||
|
|
assert isinstance(payload["argv"], list)
|
||
|
|
assert payload["argv"]
|
||
|
|
|
||
|
|
def test_get_running_pid_rejects_live_non_gateway_pid(self, tmp_path, monkeypatch):
|
||
|
|
monkeypatch.setenv("HERMES_HOME", str(tmp_path))
|
||
|
|
pid_path = tmp_path / "gateway.pid"
|
||
|
|
pid_path.write_text(str(os.getpid()))
|
||
|
|
|
||
|
|
assert status.get_running_pid() is None
|
||
|
|
assert not pid_path.exists()
|