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

时间:2016-06-27 02:26:30

标签: python django unit-testing pytest pytest-django

我正在尝试修补django应用程序中使用的配置文件,并且在我们导入配置的方式上无法理解如何执行此操作。我不认为它的Django在这里有很多相关性,但它部分驱动了这个文件结构。

应用/ views.py

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

应用/ config.py

MAX_NUMBER_RETRIES = 1

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

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

1 个答案:

答案 0 :(得分:0)

这应该有效:

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

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