# -*- coding: utf-8 -*- r'''把 _tests/test_package_remote.py 复制一份出来,去掉清理临时目录那一步。 为什么:整个测试里前三节都过,第四节报 Connection refused。 中转在隔离环境里是好的,所以想在中转真正死掉的那一刻看到它的日志 —— 而原测试跑完会 rmtree 把日志删掉。 这份副本放到 _build/ 下(我的边界内),并额外打印中转进程的存活状态。 ''' from __future__ import annotations import sys from pathlib import Path ROOT = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote") SRC = ROOT / "_tests" / "test_package_remote.py" DST = ROOT / "_build" / "dbg_pkg_full.py" text = SRC.read_text(encoding="utf-8") # 1) 不要删临时目录 old_clean = " shutil.rmtree(work, ignore_errors=True)" new_clean = (" print()\n" " print(' [调试] 临时目录保留在: %s' % work)\n" " for _p in (relay_proc, agent_proc):\n" " if _p is not None:\n" " print(' [调试] 进程 %s poll()=%s'\n" " % (_p.pid, _p.poll()))") if old_clean not in text: print(" ✗ 没找到清理那行") sys.exit(1) text = text.replace(old_clean, new_clean, 1) # 2) 每节之前打印中转存活状态 old_java = ' print()\n print("四、Java 手表端经这个中转连被控端")' new_java = (' print()\n' ' print("四、Java 手表端经这个中转连被控端")\n' ' print(" [调试] 进第四节前: relay poll()=%s agent poll()=%s"\n' ' % (relay_proc.poll(), agent_proc.poll()))\n' ' try:\n' ' import urllib.request as _u\n' ' with _u.urlopen(base + "/v1/health", timeout=3) as _r:\n' ' print(" [调试] 中转健康检查: %s" % _r.status)\n' ' except Exception as _e:\n' ' print(" [调试] 中转健康检查失败: %s" % _e)') if old_java not in text: print(" ✗ 没找到第四节标题") sys.exit(1) text = text.replace(old_java, new_java, 1) # 3) 输出文件名改成不冲突的(原文件用的是 1.8.2,不用改) DST.write_text(text, encoding="utf-8", newline="\n") print(" ✓ 已写出 %s" % DST.name) print(" 改动:保留临时目录 + 第四节前打印中转存活状态")