From e290ff2b11aca8524d10e7f9defceb607e8c81a5 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 31 Aug 2026 02:16:40 +0800 Subject: [PATCH] =?UTF-8?q?fix(test):=20hevc=20=E8=BD=AC=E7=A0=81=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E6=81=A2=E5=A4=8D=20sys.modules=20=E6=97=B6=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=85=A8=E9=83=A8=20mock=20=E6=9D=A1=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #1566 v1 的恢复块保留了 video_processing.oss_helpers / thumbnail_generator 两个 mock 条目(误以为 patch.object 需要),导致同 xdist worker 后续测试 文件 import video_processing.* 仍拿到 MagicMock——test_thumbnail_generator 50 个用例继续失败(#1561/#1562 CI 实证)。 patch.object 不依赖 mock 条目留在 sys.modules:download_asset 已被 ingest_mod 顶部 from import 绑定;thumb patcher 为字符串目标,start 时会触发真实模块 重导入再打补丁。全部删除即可。 --- tests/unit/test_ingest_hevc_transcode_task.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/unit/test_ingest_hevc_transcode_task.py b/tests/unit/test_ingest_hevc_transcode_task.py index 0ccaae476..ea0ed6f84 100644 --- a/tests/unit/test_ingest_hevc_transcode_task.py +++ b/tests/unit/test_ingest_hevc_transcode_task.py @@ -53,11 +53,13 @@ import pytest # noqa: E402 from worker_app.tasks import ingest as ingest_mod # noqa: E402 # ── 立即恢复 sys.modules,避免 mock 泄漏到其他测试文件 ── +# 本文件 patch.object 不依赖 mock 条目保留在 sys.modules:download_asset +# 已被 ingest_mod 顶部 from import 绑定;thumb patcher 是字符串目标,start +# 时会触发真实模块重新导入后再打补丁(真实模块 CI 可导入)。因此注入的 +# mock 条目必须全部删除——若保留 video_processing.* mock,同 xdist worker +# 后续测试文件 import 仍会拿到 MagicMock(#1566 v1 曾因此漏修)。 for _key in list(sys.modules.keys()): if _key not in _SAVED_MODULES_KEYS: - # 保留 mock 对象供本文件 patch.object 使用 - if _key in ("video_processing.oss_helpers", "video_processing.thumbnail_generator"): - continue del sys.modules[_key] del _SAVED_MODULES_KEYS