# -*- coding: utf-8 -*- """再收尾三处。 1. test_image_modes:还残留 `pump(root, ...)`,但 root 变量已经删了。 2. test_selfcheck:日志检查的行文本和我的锚点不完全一样。 3. test_pair_once_flow:call() 把「剪贴板事件」当成了回复。 服务端会主动推 event 消息,客户端必须跳过它们只等真正的回复。 """ from __future__ import annotations import sys from pathlib import Path TESTS = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote\_tests") # ---------------- 1 ---------------- IMAGE = TESTS / "test_image_modes.py" # ---------------- 2 ---------------- SELF = TESTS / "test_selfcheck.py" SELF_OLD = ''' log_path = data_dir / "运行日志.txt" log_text = log_path.read_text(encoding="utf-8") if log_path.is_file() else ""''' SELF_NEW = ''' # 被控端现在跑静默模式,日志写在 silent.log;旧版是 运行日志.txt log_text = "" for name in ("silent.log", "运行日志.txt"): log_path = data_dir / name if log_path.is_file(): try: log_text += log_path.read_text(encoding="utf-8", errors="replace") except OSError: pass''' # ---------------- 3 ---------------- FLOW = TESTS / "test_pair_once_flow.py" FLOW_OLD = ''' self.sock.sendall((json.dumps(obj, ensure_ascii=False) + "\\n").encode("utf-8")) deadline = time.time() + timeout while b"\\n" not in self.buf: if time.time() > deadline: raise TimeoutError("超时") chunk = self.sock.recv(65536) if not chunk: raise ConnectionError("断开") self.buf += chunk line, _, self.buf = self.buf.partition(b"\\n") return json.loads(line.decode("utf-8"))''' FLOW_NEW = ''' self.sock.sendall((json.dumps(obj, ensure_ascii=False) + "\\n").encode("utf-8")) deadline = time.time() + timeout while True: while b"\\n" not in self.buf: if time.time() > deadline: raise TimeoutError("超时") chunk = self.sock.recv(65536) if not chunk: raise ConnectionError("断开") self.buf += chunk line, _, self.buf = self.buf.partition(b"\\n") message = json.loads(line.decode("utf-8")) # 服务端会主动推 event(剪贴板、画面帧…),那不是回复,要跳过 if "event" in message: continue return message''' def main() -> int: ok = True # 1. pump(root, -> pump(agent.root, text = IMAGE.read_text(encoding="utf-8") count = text.count("pump(root,") text = text.replace("pump(root,", "pump(agent.root,") IMAGE.write_text(text, encoding="utf-8") print(f" image / pump 参数改了 {count} 处") # 2. text = SELF.read_text(encoding="utf-8") if SELF_OLD in text: SELF.write_text(text.replace(SELF_OLD, SELF_NEW, 1), encoding="utf-8") print(" selfcheck / 日志路径: OK") else: print(" [跳过] selfcheck —— 锚点还是没找到") ok = False # 3. text = FLOW.read_text(encoding="utf-8") if FLOW_OLD in text: FLOW.write_text(text.replace(FLOW_OLD, FLOW_NEW, 1), encoding="utf-8") print(" flow / 跳过 event 消息: OK") else: print(" [跳过] flow —— 锚点没找到") ok = False import ast for path in (IMAGE, SELF, FLOW): try: ast.parse(path.read_text(encoding="utf-8")) except SyntaxError as exc: print(f" {path.name}: 语法错误 {exc}") ok = False print(" 语法 OK") return 0 if ok else 1 if __name__ == "__main__": sys.exit(main())