python - 为什么我不能修补 multiprocessing.Process?
问题描述
所以我有这些文件:
发射器.py
import multiprocessing as MP
from common import BaseWorker
class TxWorker(BaseWorker):
... code ...
常见的.py
import multiprocessing as MP
class BaseWorker(MP.Process):
... code ...
现在我有了这个测试文件,用 pytest-mock 插件为 pytest 编写:
from transmitter import TxWorker
class MockProcess:
def __init__(self, name, *args, **kwargs):
self.name = name
def canary():
return "Mocked!"
@pytest.fixture(scope="module")
def mocked_process(module_mocker):
module_mocker.patch(WHERE_TO_PATCH, MockProcess)
yield
def test_case(mocked_process):
tw = TxWorker()
assert tw.canary() == "Mocked!"
我无法让这个测试工作。
我尝试设置WHERE_TO_PATCH
为:
transmitter.MP.Process
common.MP.Process
multiprocessing.Process
它们都不起作用。我一直有错误AttributeError: 'TxWorker' object has no attribute 'canary'
。
我哪里做错了?
解决方案
推荐阅读
- android - Android 上的 React Native Fetch 不会传递选项
- java - 在循环内部等待方法完成执行
- c# - 如何在 C# 中将多个参数传递给静态 Void Main
- visual-studio - 在 Visual Studio 中运行时将环境变量传递给 Docker 容器
- javascript - 单击按钮的 Chrome 扩展程序
- c - 为什么你可以在 C 中有一个指向字符串数组的指针
- objective-c - 使用 Autolayout 为 UIView 设置动画
- javascript - ng:areq 需要参数“范围” - 重新渲染数据表时出现角度错误
- python - 检测 gunicorn worker 重启
- soapui - 在 SoapUI 中从另一个 TestSuite 调用 TestCase