7

我试图测试一些功能,包括调用 celery 任务。这些任务涉及调用 3rd 方网站,我需要在测试期间避免它。

知道如何在测试期间禁用所有 celery 任务吗?

4

2 回答 2

0

您可以修补任务延迟功能

   patch("celery.app.task.Task.delay", return_value=1)
   patch("celery.app.task.Task.apply_async", return_value=1)

如果您使用的是 pytest,您可以在 conftest.py 中添加:

@pytest.fixture(autouse=True)
def mock_celery_delay(mocker):
    mocker.patch("celery.app.task.Task.delay", return_value=1)
    mocker.patch("celery.app.task.Task.apply_async", return_value=1)
于 2022-02-24T00:36:35.713 回答
-1

通常“好方法”意味着做 Mocks。 http://www.voidspace.org.uk/python/mock/

因此,您将从站点返回示例响应。

您可以检查类声明调试状态,如果 True 用相应的 Mock 替换类

于 2013-10-29T11:22:57.257 回答