diff --git a/scripts/regression_test.py b/scripts/regression_test.py index b922df2..555bc33 100644 --- a/scripts/regression_test.py +++ b/scripts/regression_test.py @@ -93,6 +93,18 @@ def main(): fails.append(f"GET {rule} -> {type(e).__name__}: {e}") print(f"GET 路由: {len(rules)} 个(跳过 {len([r for r in rules if r.startswith(_SKIP_PREFIXES)])} 个流式/二进制)") + # ========== 1.5 未登录访问(登录重定向链路) ========== + try: + r = c.get("/") + if r.status_code == 302 and "login" in (r.headers.get("Location") or ""): + passed += 1 + elif r.status_code == 200: + passed += 1 # 已登录态也可能 200(测试客户端无 cookie 时走 302) + else: + fails.append(f"未登录访问 / -> HTTP {r.status_code}(应 302 到登录页)") + except Exception as e: + fails.append(f"未登录访问 / -> {type(e).__name__}: {e}") + # ========== 2. 写操作空 body 探测(抓 import 遗漏/引用错误) ========== write_rules = sorted({r.rule for r in app.url_map.iter_rules() if r.rule.startswith("/api") diff --git a/web_server.py b/web_server.py index 3cbdcf4..3396e2a 100644 --- a/web_server.py +++ b/web_server.py @@ -37,7 +37,7 @@ app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///" + os.path.join( app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False login_manager = LoginManager(app) -login_manager.login_view = "login" +login_manager.login_view = "auth.login" # 蓝图化后路由前缀 auth # 先初始化数据库(含旧 JSON 迁移),再创建 TaskManager(需要 app context 读写 DB) init_db(app)