docs: 补强 V1 数据与测试设计

- 扩展 SQLite schema:新增 batches、Excel 行定位、stage/status、时间戳和重试字段

- 明确 SQLite worker 并发规则:独立 connection、WAL、busy_timeout、短事务

- 调整 AI 接入顺序:先做模型清单后端,再接真实 ai.py,设置页复用后端

- 补充 unittest 测试基座要求和分层验证策略

- 敏感信息改为本地明文保存,配合 gitignore、UI 打码和日志脱敏
This commit is contained in:
chengma
2026-06-26 16:27:33 +08:00
parent 92735ae7a4
commit 3832697fc4
15 changed files with 152 additions and 62 deletions
+12 -1
View File
@@ -22,7 +22,7 @@
| AI 图像生成 | 选 `default_image_model`(category=image,image-to-image) | 选型在配置 | 提示词+旧封面→新封面;分辨率 512/1k/2k/4k,返回超时随分辨率 |
| 并发 | 标准库 `concurrent.futures.ThreadPoolExecutor` | 已定 | 标题/图片分别按并发数并行;可停止、可重试 |
| 图片处理 | `requests`(下载)+ `Pillow`(按分辨率/jpg质量存盘) | 部分待定 | 下载旧封面;新封面按 resolution 生成、jpg_quality 存盘 |
| 测试 | `python -m py_compile` + 手动 CDP 验证 | 待完善 | 纯 UI/浏览器交互难以单测;关键逻辑(配置读写、参数拼装)可加 `pytest` |
| 测试 | `python -m py_compile` + `unittest` + 手动 CDP/AI 验证 | 已定(分层) | 配置/DB/Excel/prompts 用单测;CDP/Shopee 与真实 AI 属集成验证或 mock |
## 二、决策记录与演进
@@ -44,6 +44,7 @@
| 安装依赖 | `pip install websocket-client requests openpyxl pillow PySide6` |
| 检查 PySide6 | `python -c "import PySide6; print(PySide6.__version__)"` |
| 语法检查 | `python -m py_compile *.py` |
| 单元测试 | `python -m unittest discover -s tests` |
| 跑单账号演示 | `python prototypes/demo.py`(分步)/ `set AUTO=1 && python prototypes/demo.py`(自动) |
| 提交更新(真改线上) | `set UPDATE=1 && python prototypes/demo.py` |
| 读取某账号 Cookie(调试) | `python prototypes/cookies.py` |
@@ -67,3 +68,13 @@ set AUTO=1 && python prototypes/demo.py
- GUI 框架固定为 PySide6,不允许混入 Tkinter/PyQt/Web 形成两套 UI。
- 不引入第二套浏览器自动化方案(不要 cdp.py 之外再混入 selenium/playwright)。
- 不确定的技术选型先更新本文,再进入代码。
## 五、测试分层
| 层级 | 覆盖对象 | 验证方式 |
| --- | --- | --- |
| 语法 | 所有 `.py` | `python -m py_compile *.py`,后续可扩展 `compileall` |
| 单元 | `appconfig/db/excel/prompts/config/chrome` 的纯逻辑 | `python -m unittest discover -s tests`,使用临时目录/临时 SQLite/样例 Excel |
| GUI 轻测 | PySide6 主窗口可创建、Tab 数量、worker signal 基本行为 | 可用 unittest 构造 `QApplication`,不连真实 Shopee |
| 集成 | CDP/editor 操作 Shopee 测试商品 | 手动跑 `prototypes/demo.py` 或后续专用集成脚本 |
| 外部 AI | 模型连接、文本/图像生成 | 默认 mock;真实调用只在手动验证时跑,避免成本和限流 |