Files
multi-agent-mux/tests/test_issue68_onboard_default.py
T

53 lines
1.5 KiB
Python

"""Issue #68: worktree_prepare.sh onboards by default (--no-onboard skips), and
create_session.sh --no-onboard warns for post-discovered-id agents (adapter
id_lifecycle == POST_DISCOVERED).
"""
from __future__ import annotations
import json
import os
import re
import shlex
import subprocess
import sys
import time
from pathlib import Path
import pytest
import yaml
REPO_ROOT = Path(__file__).resolve().parent.parent
SKILLS = REPO_ROOT / ".agents" / "skills"
if str(SKILLS) not in sys.path:
sys.path.insert(0, str(SKILLS))
from lib_py.agents.base import POST_DISCOVERED # noqa: E402
from lib_py.agents.registry import get_adapter # noqa: E402
ALL_AGENTS = ("claude", "agy", "hermes", "grok", "opencode", "codex")
EXPECTED_POST_DISCOVERED = {
"agy": 1,
"codex": 1,
"hermes": 1,
"opencode": 1,
"claude": 0,
"grok": 0,
}
@pytest.mark.parametrize("agent", ALL_AGENTS)
def test_facts_expose_post_discovered(agent):
env = dict(os.environ, PYTHONPATH=f"{SKILLS}:{os.environ.get('PYTHONPATH', '')}")
res = subprocess.run(
[sys.executable, "-m", "lib_py.agents", "facts", agent],
capture_output=True, text=True, check=True, env=env,
)
eval_res = subprocess.run(
["bash", "-c", f"set -euo pipefail; eval {shlex.quote(res.stdout)}; echo \"$MAM_ID_POST_DISCOVERED\""],
capture_output=True, text=True, check=True,
)
val = int(eval_res.stdout.strip())
adapter = get_adapter(agent)
assert val == (1 if adapter.id_lifecycle == POST_DISCOVERED else 0)
assert val == EXPECTED_POST_DISCOVERED[agent]