test(issue-17): test_o1_rebuttal and test_o2_race_free_lock run run_loop.sh under their own WORKSPACE_ROOT (review claude, grok)

Two modules still ran the checkout's run_loop.sh - which sources lib.sh
before it parses an option - with the process environment and no root of
their own: test_o2_race_free_lock's test_o2_12 (review claude; it was in the
sweep's list and missed in 8b47cc7) and test_o1_rebuttal's
test_v3_rebut_option_parsing_and_budget, whose calls pass no env (review
grok; outside the env-copy grep). Both now use own_workspace_root, and W1
runs one node of each: at 8b47cc7 W1 fails with the copy's .mam/shim/herdr.

A last pass over the test files that run lib.sh, run_loop.sh, the wrapper or a
skill script: every one is marked, uses mam_sandbox or pins WORKSPACE_ROOT,
or does not source lib.sh (b7 diff_collect, deploy, issue42, issue45 config,
issue5_phase0, local_mqtt).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HCGpJXhSZasJLU38ksDghe
This commit is contained in:
GodopuandClaude Opus 5.5 committed 2026-10-09 02:24:22 +09:00
1 parent 8b47cc76ee
commit ac48cb7861
3 files changed
+9

No files matched your search

@@ -38,6 +38,8 @@ NODES = [
"tests/test_orc_onboard.py::test_o12_onboard_add_uuid", "tests/test_orc_onboard.py::test_o12_onboard_add_uuid",
"tests/test_workspace_scope.py::TestWorkspaceScope::test_derived_herdr_session_name", "tests/test_workspace_scope.py::TestWorkspaceScope::test_derived_herdr_session_name",
"tests/test_issue17_item4_decisions.py::test_c_cmd_wait", "tests/test_issue17_item4_decisions.py::test_c_cmd_wait",
"tests/test_o2_race_free_lock.py::test_o2_12_run_loop_exits_on_lock_failure",
"tests/test_o1_rebuttal.py::test_v3_rebut_option_parsing_and_budget",
] ]
+4
View File
@@ -7,6 +7,10 @@ import os
import subprocess import subprocess
import pytest import pytest
# Issue #17: shells started here inherit a WORKSPACE_ROOT of this test's own
# (lib.sh would otherwise rewrite the checkout's .mam/shim/herdr).
pytestmark = pytest.mark.usefixtures("own_workspace_root")
REPO_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) REPO_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
RUN_LOOP_SH = os.path.join(REPO_ROOT, ".agents", "skills", "multi-agent-mux-loop", "scripts", "run_loop.sh") RUN_LOOP_SH = os.path.join(REPO_ROOT, ".agents", "skills", "multi-agent-mux-loop", "scripts", "run_loop.sh")
RULES_MD = os.path.join(REPO_ROOT, ".agents", "MULTI_AGENT_RULES.md") RULES_MD = os.path.join(REPO_ROOT, ".agents", "MULTI_AGENT_RULES.md")
+3
View File
@@ -193,6 +193,9 @@ def test_o2_11_legacy_marker_respected(tmp_path):
proc_dummy.wait() proc_dummy.wait()
# Issue #17: run_loop.sh sources lib.sh, which rewrites $WORKSPACE_ROOT/.mam/shim/herdr;
# only this test runs it (a module-wide mark would add an entry to o2_7's tmp_path).
@pytest.mark.usefixtures("own_workspace_root")
def test_o2_12_run_loop_exits_on_lock_failure(tmp_path): def test_o2_12_run_loop_exits_on_lock_failure(tmp_path):
marker = tmp_path / "loop-guard-active" marker = tmp_path / "loop-guard-active"
proc = acquire_bg(marker) proc = acquire_bg(marker)