WorkBuddy
af5412646b
test(e2e): 运营登录只用 seed 账号;补幂等 E2E 与两处机械守卫
1) 修复一处从未暴露的 CI 缺陷
库中 operator 账号没有任何迁移种子,DemoDataSeeder 也不创建运营账号
(只统计数量),全新库唯一的账号来源是 seed_e2e_operators.sql。
而 conftest 的 admin_token 写死 username="admin" —— 那是某台开发机上
手工创建的遗留账号:本机有它所以本地一直跑绿,CI 全新库没有它 →
该 fixture 必然 401 → e2e job 从未真正通过过。
同一文件里「外加迁移 seed 的 admin」这句注释也是纯粹的虚构。
改用 seed 创建的 e2e_admin(已绑定 super_admin,语义等价)。
2) fixture_account_guard_test.py(2 用例)
机械拦住「fixture 依赖本机手工数据」:从 seed SQL 解析账号清单,
扫描 conftest 的所有登录用户名,任何一个不在 seed 内即变红;
另一条锁住推理前提(迁移里确实没有 operator 种子)。
两条都带「解析失败即失败」断言 —— 守卫自身静默失效是本项目反复踩过的坑。
3) idempotency_test.py(7 用例)
同键重放响应逐字节相同、同键重复提交只产生一条记录、body 字段幂等未回归、
不同键相互独立、同键作用域按 actor 隔离、5 线程并发同键业务恰好落库一次、
无键重复 Like 不得返回 500。
4) conftest.ApiClient.call 支持 headers 覆盖,供幂等用例携带自定义键。
2026-09-18 16:37:33 +08:00
..
2026-09-18 13:50:19 +08:00
2026-09-18 11:49:18 +08:00
2026-09-18 16:37:33 +08:00
2026-09-18 13:50:19 +08:00
2026-09-18 13:50:19 +08:00
2026-09-18 13:50:19 +08:00
2026-09-18 16:37:33 +08:00
2026-09-18 13:50:19 +08:00
2026-09-18 15:05:41 +08:00
2026-09-18 16:37:33 +08:00
2026-09-18 13:50:19 +08:00
2026-09-18 14:34:58 +08:00
2026-09-18 13:50:19 +08:00
2026-09-18 13:50:19 +08:00
2026-09-18 13:50:19 +08:00
2026-09-10 10:58:43 +08:00
2026-09-18 11:49:18 +08:00
2026-09-18 13:50:19 +08:00