fix some bugs.
This commit is contained in:
@@ -380,3 +380,42 @@ SQL 变成 `DELETE FROM follow_ups WHERE <follow_ups条件> AND <messages条件>
|
||||
在**未重新部署的旧构建**上会 FAIL 并打印「サーバー内部エラー」,正是需要重新部署的信号。
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 部署后巡检扩容:投票全链路 + 登录态资产(28/28 全绿)
|
||||
|
||||
**背景**:用户重新部署后要求「所有功能都试一遍」。此前 `devcheck-e2e.py` 只验证了「新建投票页 GET」,
|
||||
**投票创建(POST)这条主链路从未端到端跑过**,是覆盖盲区。
|
||||
|
||||
**改动**:`dev/devcheck-e2e.py` 扩到 **28 项**,新增两组:
|
||||
|
||||
1. `check_vote_flow(owner, base)` —— 投票全链路
|
||||
- POST `/user/votes` 建单选投票并 `action=publish` → 断言 302 → `/user/questions#votes`
|
||||
- GET `/user/questions` 断言标题可见,并从 `copyShareURL('...')` 取 **LinkToken**、从 `/user/votes/(\d+)/edit` 取 **ID**
|
||||
- 匿名 GET `/vote/<token>` → 200 且含标题;从 `name="option_id" value="..."` 取选项 ID
|
||||
- 匿名 POST `/vote/<token>/submit`(`option_id` + 数学验证码 + `_csrf`)→ 302
|
||||
- GET `/user/votes/<id>/export` 断言 **`总参与,N` 这行的 N == 1**
|
||||
- 草稿:`action=save` → 302 到 `/user/votes/<id>/edit?saved=1`
|
||||
- 表单型:`type=form` + `form_fields` JSON(field_type/label/required/max_length)→ 发布 302
|
||||
2. `check_user_assets(owner)` —— 登录态接口/导出
|
||||
- `/api/v1/user` 返回 JSON、`/explore` 200、`POST /user/profile/export-json`(JSON)、
|
||||
`POST /user/profile/export`(xlsx,校验 content-type)、停用页 `deactivate.note` 结构断言
|
||||
|
||||
**踩到的坑(都已在脚本里修掉)**:
|
||||
- 单选投票导出 CSV 的**末行是 `总参与,N`**,与各选项票数行同为 `,数字` 结尾 →
|
||||
用 `,\d+$` 一把捞会把总参与也累加进去(实测 `[1,0,0,1]` 求和成了 2)。
|
||||
**必须单独匹配 `总参与,(\d+)`**。
|
||||
- `urllib` 读 **HTTPError 的响应体本身也会超时**(`c.get("/i18n/xx?...")` 这类 302 最易触发),
|
||||
异常从 except 块里抛出会把整轮巡检打断。已把 body 读取包在 try/except 里,并在 `__main__` 外层加兜底
|
||||
——中断时仍打印已完成项,而不是只留一段 traceback。
|
||||
- ⚠️ 复盘我自己的一个假警报:用 `T=/c/Users/Tamakyi\ Gekka/...` 做 gofmt 比对循环时,
|
||||
变量未加引号导致路径断裂 → 全部文件假报 DIFF。**脚本里带空格的路径变量一定要整体加引号**,
|
||||
单文件手跑同一个文件即为 OK,说明是脚本问题而非代码问题。
|
||||
|
||||
**结果**:测试环境 `https://box-dev-api.337845818.best` 跑 `python dev/devcheck-e2e.py` → **28 项,失败 0 项**。
|
||||
10 个改动过的 Go 文件 gofmt 比对全部 OK(无重排),行尾未变。
|
||||
|
||||
**遗留**:巡检每轮会在测试环境留下一个**已停用的身份占位**(邮箱/域名被占用)。
|
||||
本轮新增 `tbe2e*` 若干;用户自己的 `1223383917@qq.com` / `tamakyi` 也仍是占位状态。
|
||||
清理:`TamaBox ban --email <邮箱> --yes`(连行物理删,彻底释放)或 `TamaBox restore --email <邮箱> --yes`(恢复)。
|
||||
|
||||
Reference in New Issue
Block a user