修补 python 中作为另一个名称导入的配置文件

Patch a config file imported as another name in python

我正在尝试修补 Django 应用程序中使用的配置文件,但鉴于我们导入配置的方式,我无法理解如何操作。我不认为它是 Django 的事实在这里有多大的相关性,但它部分地驱动了这个文件结构。

app/views.py

from . import config as APP_CONFIG
...later on in some function...
retry_count = APP_CONFIG.MAX_NUMBER_RETRIES

app/config.py

MAX_NUMBER_RETRIES = 1

如何正确修补此配置设置?

我在我的测试函数中尝试了各种 @patch('app.views.CONFIG.MAX_NUMBER_RETRIES', 1)@patch('app.config.MAX_NUMBER_RETRIES', 1) 都无济于事(我使用 pytest)。

这应该有效:

@patch('app.views.APP_CONFIG.MAX_NUMBER_RETRIES', 1)

我尝试了一个小例子(没有 Django),它按预期工作。这可能不是 pytest,而是 mock 相关。查看文档:Where to patch .