Align conftest mock herdr and unit test assertions with Claude's simplified session-based isolation and native herdr command updates

This commit is contained in:
2026-07-20 07:42:05 +09:00
parent cccc30a8ac
commit 6df4b03661
13 changed files with 312 additions and 115 deletions
+45 -5
View File
@@ -103,6 +103,11 @@ def save_state():
save_state()
args = sys.argv[1:]
if args and args[0] == "--session":
if len(args) > 1:
args = args[2:]
else:
args = args[1:]
if not args:
sys.exit(0)
@@ -310,7 +315,18 @@ elif cmd1 == "agent":
"command": agent_data.get("command", ""),
"argv": agent_data.get("command", "")
}
print(json.dumps({"pane": pane_info}))
print(json.dumps({
"pane": pane_info,
"result": {
"agent": {
"agent": agent_data.get("agent", "claude"),
"status": agent_data.get("status", "running"),
"cwd": agent_data.get("cwd", ""),
"pane_id": agent_data.get("pane_id", "w1:p1"),
"workspace_id": agent_data.get("workspace_id", "w1")
}
}
}))
sys.exit(0)
else:
sys.stderr.write("Agent " + name + " not found\\\\n")
@@ -372,22 +388,46 @@ elif cmd1 == "session":
sys.exit(1)
elif cmd1 == "pane":
if len(args) < 4:
if len(args) < 3:
sys.exit(1)
cmd2 = args[1]
if cmd2 == "send-keys":
if len(args) < 4:
sys.exit(1)
name = args[2]
key = args[3]
agents = state.get("agents", {})
if name in agents:
agents[name]["sent_keys"] = agents[name].get("sent_keys", []) + [key]
actual_name = name
for a_name, data in agents.items():
if data.get("pane_id") == name:
actual_name = a_name
break
if actual_name in agents:
agents[actual_name]["sent_keys"] = agents[actual_name].get("sent_keys", []) + [key]
if key in ("Enter", "C-m"):
agents[name]["buffer"] = agents[name].get("buffer", "") + "\\nesc to interrupt"
agents[actual_name]["buffer"] = agents[actual_name].get("buffer", "") + "\\nesc to interrupt"
state["agents"] = agents
save_state()
sys.exit(0)
else:
sys.exit(1)
elif cmd2 == "process-info":
pane_id = ""
if "--pane" in args:
pane_id = args[args.index("--pane") + 1]
pid = 9999
for name, data in state.get("agents", {}).items():
if data.get("pane_id") == pane_id or pane_id == "w1:p1":
pid = data.get("pid", 9999)
break
res = {
"process_info": {
"foreground_processes": [{"pid": pid}],
"shell_pid": pid
}
}
print(json.dumps({"result": res}))
sys.exit(0)
elif cmd1 == "ls":
if "-F" in args:
+2 -2
View File
@@ -108,13 +108,13 @@ def test_resume_resolve_herdr_workspace_default(mam_sandbox):
"""Test resolve_herdr_workspace fallback behavior when session is not in YAML."""
res = run_lib_func(mam_sandbox, "resolve_herdr_workspace", "non-existent-session")
assert res.returncode == 0
assert res.stdout.strip() == "w1"
assert res.stdout.strip() == "default"
def test_resume_resolve_herdr_workspace_env(mam_sandbox):
"""Test resolve_herdr_workspace fallback to HERDR_SERVER_NAME env var."""
res = run_lib_func(mam_sandbox, "resolve_herdr_workspace", "non-existent-session", env={"HERDR_SERVER_NAME": "custom_server"})
assert res.returncode == 0
assert res.stdout.strip() == "w1" # default mapping to w1 unless resolved from workspace list
assert res.stdout.strip() == "custom_server"
def test_resume_find_workspace_uuid_empty(mam_sandbox):
"""Test find_workspace_uuid returns empty string for non-existent workspace."""