# -*- coding: utf-8 -*- r'''管理页路径变了,相关测试要跟着改。 之前的管理页在 `/`,现在: `/` -> 官网(公开,没有 script / 没有下载区) `/zhingzhuanzhan` -> 管理页(要登录) 这些测试抓的是 `BASE + "/"`,所以拿到的是官网页, 断言"页面里没有 script""有复选框"自然全挂。 同时登录表单现在多了账号字段,测试的 POST body 也要补上。 ''' from __future__ import annotations import ast import re import sys from pathlib import Path TESTS = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote\_tests") ADMIN_FILES = [ "test_admin_js.py", "test_admin_batch_delete.py", "test_admin_delete.py", "test_admin_button.py", "test_admin_netcheck.py", "test_relay_admin_login.py", ] ADMIN = "/zhingzhuanzhan" def main() -> int: for name in ADMIN_FILES: path = TESTS / name if not path.is_file(): print(f" [跳过] {name} 不存在") continue text = path.read_text(encoding="utf-8") original = text # 抓页面:BASE + "/" -> BASE + "/zhingzhuanzhan" text = re.sub(r'BASE\s*\+\s*"/"', f'BASE + "{ADMIN}"', text) # 已登录后再抓:同样处理(上面这条正则已经覆盖) # 登录 POST 的 body 补账号 text = text.replace('data=b"password=', 'data=b"username=xmz7891&password=') text = text.replace('data="password=', 'data="username=xmz7891&password=') text = text.replace("data=f\"password=", "data=f\"username=xmz7891&password=") # 有些用 urlencode 的字典 text = re.sub(r'(\{"password":\s*)', r'{"username": "xmz7891", \1', text) if text != original: path.write_text(text, encoding="utf-8", newline="\n") n = original.count('BASE + "/"') print(f" {name}: 改了 {n} 处页面路径 / 登录表单") else: print(f" {name}: 无需改动") print() print(" 语法检查:") ok = True for name in ADMIN_FILES: path = TESTS / name if not path.is_file(): continue try: ast.parse(path.read_text(encoding="utf-8")) except SyntaxError as exc: print(f" [失败] {name}: 行 {exc.lineno}: {exc.msg}") ok = False print(" 全部 OK" if ok else " 有错") return 0 if ok else 1 if __name__ == "__main__": sys.exit(main())