# -*- coding: utf-8 -*- """给 test_firewall.py 补上「源码模式不冲掉打包版规则」的断言。""" from __future__ import annotations import sys from pathlib import Path TARGET = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote\_tests\test_firewall.py") ANCHOR = ''' check("删除动作在添加动作之前",''' ADDITION = ''' # 源码模式下不能把打包版的程序级规则冲掉(真机事故) target = firewall.target_executable() check("修复目标是一个真实的可执行文件", bool(target) and target.lower().endswith(".exe"), str(target)) if not getattr(sys, "frozen", False): existing = firewall.app_rule_program() if existing and "python" not in existing.lower(): check("源码模式下沿用已有的打包版目标,不写 python.exe", "python" not in target.lower(), f"target={target}") print(f" 修复将放行: {target}") check("删除动作在添加动作之前",''' def main() -> int: text = TARGET.read_text(encoding="utf-8") if "target_executable" in text: print(" 已经打过补丁,跳过") return 0 if ANCHOR not in text: print(" [失败] 锚点未找到") return 1 text = text.replace(ANCHOR, ADDITION, 1) TARGET.write_text(text, encoding="utf-8") print(" test_firewall.py: 已补断言") return 0 if __name__ == "__main__": sys.exit(main())