mirror of
https://github.com/pyMC-dev/pyMC_Repeater.git
synced 2026-10-30 19:51:59 +01:00
test: add case for legacy restart interrupted being likely successful
This commit is contained in:
1 parent
fb92b0c4eb
commit
7dddebde73
2 files changed
+24
-3
No files matched your search
@@ -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}"
|
||||
|
||||
@@ -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]
|
||||
|
||||
Reference in new issue
Block a user