gpt4 book ai didi

python - 如何模拟另一个模块中使用的 django 设置属性?

转载 作者:太空狗 更新时间:2023-10-29 22:21:36 25 4
gpt4 key购买 nike

假设模块 a 代码:

from django.conf import settings
print settings.BASE_URL # prints http://example.com

tests.py 中,我想将 BASE_URL 模拟为 http://localhost

我尝试了以下方法:

with mock.patch('django.conf.settings.BASE_URL', 'http://localhost'):
pass

with mock.patch('a.settings.BASE_URL', 'http://localhost'):
pass

from a import settings

with mock.patch.object(settings, 'BASE_URL', 'http://localhost'):
pass

import a

with mock.patch.object(a.settings, 'BASE_URL', 'http://localhost'):
pass

以上均无效。

最佳答案

尝试使用上下文管理器 settings() 内置的 django。

with self.settings(BASE_URL='http://localhost'):
# perform your test

https://docs.djangoproject.com/en/dev/topics/testing/tools/#django.test.SimpleTestCase.settings

关于python - 如何模拟另一个模块中使用的 django 设置属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36611393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com