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:
+45
-5
@@ -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:
|
||||
|
||||
@@ -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."""
|
||||
|
||||
Reference in New Issue
Block a user