test: add case for legacy restart interrupted being likely successful

This commit is contained in:
Rightup committed 2026-09-08 23:36:15 +01:00
1 parent fb92b0c4eb
commit 7dddebde73
2 files changed
+24 -3

No files matched your search

+6 -3
View File
@@ -294,14 +294,17 @@ def restart_service() -> Tuple[bool, str]:
logger.info("Service restart via legacy fallback succeeded (%s)", reason)
return True, "Service restart initiated (legacy fallback)"
if legacy.returncode < 0:
# When running inside the service cgroup, a direct restart can
# terminate this process before subprocess.run returns. Treat
# termination by signal as likely success.
logger.warning(
"Legacy restart interrupted (%s) after %s",
"Legacy restart interrupted by signal (%s) after %s; treating as likely success",
legacy.returncode,
reason,
)
return (
False,
"Restart unconfirmed: legacy fallback interrupted; check service status",
True,
"Service restart likely initiated (legacy fallback interrupted by signal)",
)
legacy_err = legacy.stderr.strip() or f"exit status {legacy.returncode}"
return False, f"legacy fallback failed: {legacy_err}"
+18
View File
@@ -84,6 +84,24 @@ def test_non_root_denied_schedule_retries_legacy_and_succeeds(monkeypatch):
assert run.call_count == 2
def test_non_root_denied_schedule_legacy_interrupted_is_likely_success(monkeypatch):
monkeypatch.setattr(su.os, "geteuid", lambda: 1000)
monkeypatch.setattr(su.os.path, "exists", lambda p: p == su._SUDO_SYSTEMCTL_BIN)
run = Mock(
side_effect=[
subprocess.CompletedProcess([], 1, "", "sudo: a password is required"),
subprocess.CompletedProcess([], -15, "", ""),
]
)
monkeypatch.setattr(su.subprocess, "run", run)
ok, message = su.restart_service()
assert ok is True
assert "likely initiated" in message
assert run.call_count == 2
def test_installer_authorizes_only_fixed_restart_timer_command():
script = (Path(__file__).resolve().parents[1] / "manage.sh").read_text()
rules = [line for line in script.splitlines() if "NOPASSWD:" in line]