Archived
This repository has been archived on 2026-10-02 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
5ad2152accb316618a212728092ceb6da267a0ad
为什么:注册是站点唯一的建号入口,84 行里五条「建号前失败」路径各自 手写一遍 restore_verify_code(有的还带失败日志),防刷双闸与三种建号 异常的口径全埋在分支里,改任何一条都要通读全函数核对还原时序。 拆出(顺序 = 原执行顺序,逐条语义对应): - _validate_registration_input:入参四道闸(协议/用户名/密码/邮箱), 按序返回第一条错误文案 - _reject_registration:统一拒绝出口——还原已消费验证码(可选失败 日志);五处 restore 收敛为一处,docstring 写明「为何必须还原」 - _register_credits:赠送闸(同设备重复注册归零;顺带删除 credits<0 死分支——_safe_register_credits 已保证非负) - _issue_registration_session:成功收尾(login_seq 递增 + 日志 + Cookie) 先写测试后动代码:新增 tests/test_register_flow.py 9 例,在未改动 实现上一次跑绿。验证码由 check_verify_code DELETE 原子消费,测试用 「失败路径后 email_codes 行仍在」做 restore 实证断言(不 mock 还原); 其中用户名重名路径用端到端方式验证——同一验证码不重发即可二次注册。 覆盖此前零测试的路径:IP 闸、设备赠送闸、IntegrityError/ValueError/ 读回 None 三种建号异常映射、非预期异常 500 泛化文案。 门禁:ruff 全过 · pyright 0/0 · pytest 339 passed(330→339)。
Languages
Python
61%
TypeScript
32.2%
CSS
6.6%
Dockerfile
0.1%