3.4 KiB
3.4 KiB
验收报告 · T-104 ~ T-106(PySide6 GUI + 账号④ + 快捷方式)
- 日期:2026-06-27
- 范围:Codex 完成的 Phase 1 收尾——T-104 五 Tab 骨架、T-104b worker 基座、T-105 账号管理 Tab④、T-106 桌面快捷方式
- 评审方式:编译检查 + 单元测试 + 逐模块源码阅读 + 对照
docs/06-tasks.md验收要点 - 结论:通过。按文档完成,信号/线程纪律到位,质量偏上。
一、验证方法与结果
python3 -m compileall app main.py # OK
python3 -m unittest discover -s tests # Ran 33 tests, OK (skipped=4)
4 个 skip 仍为 app.excel / app.prompts 的契约测试(模块尚未实现自动跳过,实现后即校验),属预期。
二、逐任务核对
| 任务 | 结论 | 关键核对 |
|---|---|---|
| T-104 五 Tab 骨架 | ✅ | QMainWindow+QTabWidget,5 Tab 按 ①导入采集 ②AI生成 ③更新shopee ④账号管理 ⑤设置 顺序;currentChanged→状态栏;启动不阻塞;PySide6 缺失时优雅降级(main() 打印提示返回 1,不崩) |
| T-104b worker 基座 | ✅ | 6 个信号 progress/row_updated/log/failed/finished/cancelled 全在;cancel/is_cancelled/should_cancel;BaseWorker 是纯 QObject、execute() 不碰 QWidget;run_worker 走 moveToThread+生命周期 deleteLater 收尾 |
| T-105 Tab④ 账号管理 | ✅ | 增删改入库+建目录(ensure_user_data_dir);密码 EchoMode.Password 打码、列表不显示密码;登录检测走 worker(不卡 UI);不自动登录/不注入密码(launch_for_login 只拼参启动);防误点样式 min-width:128 / min-height:34 / margin / 选中加粗高亮 / hover |
| T-106 桌面快捷方式 | ✅ | .lnk 经 PowerShell WScript.Shell 生成,Arguments 含该账号 --remote-debugging-port + --user-data-dir,双击进对应账号;文件名做了非法字符清洗 |
三、值得肯定
- 失败信号双发不重复刷新:worker 异常时
failed+finished({ok:False})都发,_on_login_check_finished用ok is False and not alias提前 return,避免双刷/误判。 - 线程纪律:
detect_login在 worker 线程里调db.update_account,而 db 是每线程独立连接,无跨线程共享 connection 问题。 - 路径预览即时反馈:
AccountDialog别名改动实时算 slug/数据目录,编辑态保留原目录不漂移。 - 端口唯一性校验:
_assert_debug_port_available防止两个账号撞同一个调试端口。
四、小问题(不影响验收)
AccountsTab._update_button_state按"有无选中"启用按钮,但无账号/未登录的 ① 执行引导保护属 T-205 范围,这里不算缺。create_shortcut/launch_for_login/detect_login依赖真实 Windows + PowerShell + Chrome,本轮全是 mock 测试,逻辑可信但未在真机生成过.lnk/ 真起过 Chrome。
五、待办 / 边界
- ⚠️ 与 T-103 同一性质:账号启动登录、快捷方式、登录检测尚未真机冒烟。
- 建议:接 Phase 2(T-201/T-203 要真连 CDP)之前,把
editor.py真机冒烟 + 账号④走一遍(新增→启动→人工登录→检测→生成快捷方式)一起验一次,确认 Windows 侧 PowerShell/Chrome 链路通。
六、总评
合格偏上的工程交付:按文档、守纪律、有测试、降级与边界处理克制不臆造。可推进 Phase 2(T-201 app/excel.py 导入)。