fix(test): test_dedup_engine 不再 mock packages.shared 父包,修复 50 个 thumbnail 单测被 mock 污染 #1563
Reference in New Issue
Block a user
Delete Branch "fix/test-mock-pollution-thumbnail"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
根因:test_dedup_engine.py 模块级 _mock_if_absent(packages.shared) 把父包整个替换为 MagicMock,导致同 pytest 进程后续 from packages.shared.xxx 导入全部拿到 MagicMock,连锁污染 video_processing 命名空间,test_thumbnail_generator 的 50 个纯逻辑用例全部失败。dedup 只需要 packages.shared.storage 被 mock,删掉父包 mock 即可。属 develop pre-existing 问题(#1559 合并后暴露),仅改测试文件。
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
_mock_if_absent("packages.shared") 会把整个父包替换为 MagicMock, 导致同 pytest 进程后续从 packages.shared.* 导入任何子模块都拿到 MagicMock(如 packages.shared.title_overlay / packages.shared.config), 连锁使依赖该包的 video_processing 模块整体被 mock,test_thumbnail_generator 的 50 个纯逻辑用例全部拿到 <MagicMock> 而失败。 dedup 模块只需要 packages.shared.storage 被 mock,父包保持真实导入即可。93295c6afeto3769d96d0d【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
无
💡 改进建议(不阻塞合并)
无
✅ 良好实践
packages.shared精确调整为子模块packages.shared.storage。这有效避免了因 mock 父包导致同进程内其他测试文件(如thumbnail_generator)在导入packages.shared下其他子模块时获取到MagicMock对象的问题,提升了测试套件的稳定性和隔离性。🤖 由 AI 代码审查机器人自动生成 | 2026-08-30 16:26:46 | 模型:
🗑️ 预览环境已清理
PR #1563 已关闭或合并,对应的预览环境已被清理。