From e819a9f3bdfb5dca0b48bf1f8d0061a45850f64d Mon Sep 17 00:00:00 2001 From: sunwz1115 <192549904+sunwz1115@users.noreply.github.com> Date: Fri, 29 May 2026 03:36:30 +0800 Subject: [PATCH] test: harden yolo and kanban signal tests on macOS --- tests/cli/test_cli_yolo_toggle.py | 5 +++++ .../test_signal_handler_kanban_worker.py | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/tests/cli/test_cli_yolo_toggle.py b/tests/cli/test_cli_yolo_toggle.py index 55ee4882ee647..65110e4b5217b 100644 --- a/tests/cli/test_cli_yolo_toggle.py +++ b/tests/cli/test_cli_yolo_toggle.py @@ -40,6 +40,11 @@ def _clear_approval_state(monkeypatch): """Clear the YOLO bypass + env var around every test so cases are independent.""" monkeypatch.delenv("HERMES_YOLO_MODE", raising=False) + # The value is intentionally frozen at tools.approval import time. Local + # Hermes-driven test runs may inherit HERMES_YOLO_MODE=1 from the parent + # agent process, so make the default test state hermetic; the one test that + # covers startup-frozen YOLO explicitly patches it back to True. + monkeypatch.setattr(approval_module, "_YOLO_MODE_FROZEN", False) approval_module.clear_session(SESSION_KEY) approval_module.clear_session("default") yield diff --git a/tests/hermes_cli/test_signal_handler_kanban_worker.py b/tests/hermes_cli/test_signal_handler_kanban_worker.py index 445e80e2f5fed..e2739dc7b2390 100644 --- a/tests/hermes_cli/test_signal_handler_kanban_worker.py +++ b/tests/hermes_cli/test_signal_handler_kanban_worker.py @@ -103,6 +103,22 @@ def _is_alive_like_dispatcher(pid: int) -> bool: break except (FileNotFoundError, PermissionError, OSError): pass + elif sys.platform == "darwin": + try: + proc = subprocess.run( + ["ps", "-o", "stat=", "-p", str(pid)], + stdout=subprocess.PIPE, + stderr=subprocess.DEVNULL, + text=True, + timeout=1, + check=False, + ) + if proc.returncode != 0: + return False + if "Z" in (proc.stdout or "").strip(): + return False + except (OSError, subprocess.SubprocessError, TimeoutError): + pass return True