From 3769d96d0dbaf8dfa77cffcb43f265154e19cd57 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 31 Aug 2026 00:11:33 +0800 Subject: [PATCH] =?UTF-8?q?fix(test):=20test=5Fdedup=5Fengine=20=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=20mock=20packages.shared=20=E7=88=B6=E5=8C=85?= =?UTF-8?q?=EF=BC=8C=E6=B6=88=E9=99=A4=E8=B7=A8=E6=B5=8B=E8=AF=95=E6=96=87?= =?UTF-8?q?=E4=BB=B6=20mock=20=E6=B1=A1=E6=9F=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit _mock_if_absent("packages.shared") 会把整个父包替换为 MagicMock, 导致同 pytest 进程后续从 packages.shared.* 导入任何子模块都拿到 MagicMock(如 packages.shared.title_overlay / packages.shared.config), 连锁使依赖该包的 video_processing 模块整体被 mock,test_thumbnail_generator 的 50 个纯逻辑用例全部拿到 而失败。 dedup 模块只需要 packages.shared.storage 被 mock,父包保持真实导入即可。 --- tests/unit/test_dedup_engine.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/unit/test_dedup_engine.py b/tests/unit/test_dedup_engine.py index 2b8b2a656..a716c7ff9 100644 --- a/tests/unit/test_dedup_engine.py +++ b/tests/unit/test_dedup_engine.py @@ -42,8 +42,9 @@ _mock_if_absent("celery", MagicMock()) if "celery" in sys.modules and isinstance(sys.modules["celery"], MagicMock): sys.modules["celery"].Task = object -# Mock packages.shared.storage -_mock_if_absent("packages.shared") +# Mock packages.shared.storage(只 mock 目标子模块,不要 mock 父包 +# packages.shared——否则同进程后续从 packages.shared.* 导入任何子模块都会 +# 拿到 MagicMock,污染其他测试文件,例如 thumbnail_generator 的纯逻辑测试) _mock_if_absent("packages.shared.storage") # Mock packages.adapters.sqlalchemy_impl.generated_video_repository -- 2.54.0