docs: 归档任务 #189
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# 189 等待多地址列表稳定后再修改默认地址
|
||||
|
||||
- 类型:缺陷
|
||||
- 父级大工单:#1
|
||||
- 所属 MVP / 版本:#2
|
||||
- 状态:已完成,待用户验收
|
||||
- 日期:2026-08-12
|
||||
- Gitea 工单:<http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/189>
|
||||
|
||||
## 背景与目标
|
||||
|
||||
采购进入多地址页面时,“收货地址”标题先进入控件树,地址列表和“已设默认”标记稍后才出现。旧状态机看到标题后立即解析,首次得到零个修改候选便报歧义,导致 cg11 在尚未点击地址、尚未下单时失败。本任务等待列表和唯一默认地址目标稳定后再点击。
|
||||
|
||||
## 最终方案
|
||||
|
||||
- 地址目标解析同时返回地址卡片数、默认卡片数、整页修改数和最终候选数。
|
||||
- 地址页面候选为零、多个或结构暂未完成时继续读取,不点击也不立即失败。
|
||||
- 同一个唯一默认地址“修改”坐标必须连续出现两次才允许点击;坐标变化会清空稳定计数。
|
||||
- 首次修改点击丢失后的第二次点击仍遵守 #179 的同一目标稳定规则,最多点击两次。
|
||||
- 页面总超时后,仍在地址面板且目标不唯一时返回 `PURCHASE_ADDRESS_EDIT_AMBIGUOUS`;页面切换异常则保持 `PURCHASE_ADDRESS_PAGE_TIMEOUT`。
|
||||
- 超时诊断包含地址卡片数、默认卡片数、修改候选数、稳定读取次数、点击次数和脱敏控件树。
|
||||
- #187 的“只修改唯一已设默认地址”、#180 的保存单击和系统浮层限制均保持不变。
|
||||
|
||||
## 改了哪些
|
||||
|
||||
- `client/src/pdd_u2_purchase_adapter.py`:增加地址目标结构诊断,并将非唯一候选从立即失败改为有界等待。
|
||||
- `client/test/test_pdd_u2_purchase_adapter.py`:覆盖标题先出现、列表延迟出现,持续缺失、持续歧义、卡片内多目标和坐标持续变化。
|
||||
|
||||
## 验收结果
|
||||
|
||||
| 验收标准 | 结果 |
|
||||
|---|---|
|
||||
| 标题先出现、列表稍后出现时不立即失败 | 通过 |
|
||||
| 唯一默认地址修改目标连续稳定后才点击 | 通过 |
|
||||
| 候选为零、多个或坐标变化时不点击 | 通过 |
|
||||
| 持续无法唯一定位时有界超时并安全失败 | 通过 |
|
||||
| 超时包含结构诊断和脱敏 XML | 通过 |
|
||||
| 多地址、保存、下单及不可逆门禁行为不变 | 通过 |
|
||||
| Client 全量测试通过 | 未完全通过:461 项通过,2 项无关版本基线断言失败 |
|
||||
|
||||
## 测试
|
||||
|
||||
- 执行的命令:在 `client` 目录执行 `C:/Python310/python.exe -m unittest discover -s test -p 'test_pdd_u2_purchase_adapter.py'`
|
||||
- 结果:45 个采购 Adapter 测试全部通过。
|
||||
- 执行的命令:在 `client` 目录执行 `$env:QT_QPA_PLATFORM='offscreen'; C:/Python310/python.exe -m unittest discover -s test -p 'test_*.py'`
|
||||
- 结果:共 463 项,其中 461 项通过;2 项失败。失败是工作区 `src/version.py` 已为 `0.1.1`,而两个既有更新测试仍固定期待 `0.1.0`,与本工单采购代码无关。
|
||||
- 额外验证:排除上述两个既有版本断言后,其余 461 项全部通过。
|
||||
- **没验证到的部分**:未修复或提交用户工作区的版本号及更新测试;未在真机重新执行 cg11;未点击地址、保存、提交订单或进入任何不可逆操作。
|
||||
|
||||
## 相关提交
|
||||
|
||||
- `41d1b13` fix: 等待多地址列表稳定加载 (#189)
|
||||
Reference in New Issue
Block a user