gpt4 book ai didi

django - 在 Django test.py 文件中进行每次测试后,如何重新评估我的 urls.py 文件?

转载 作者:行者123 更新时间:2023-12-02 20:55:07 24 4
gpt4 key购买 nike

我的 urls.py 中有以下结构 - 它允许我在开发时直观地检查在浏览器中发送的电子邮件的格式:

urlpatterns = [Various url pattenrns]

if settings.DEBUG:
urlpatterns += [URL Pattern for checking emails]

我的问题是,当我运行测试套件时,代码仅检查 settings.DEBUG 一次 - 而不是每次测试甚至 TestCase 运行时。

我尝试在适用于 DEBUG=True urlpattern 的测试之前使用 @override_settings 装饰器,如下所示:

# Most of my tests run fine with Debug=False

@override_settings(DEBUG=True)
# Tests that use the URL pattern for checking emails

但是,我似乎无法在测试之间正确切换 Url 模式...大概是因为我的 urls.py 文件仅在整个应用程序的测试中加载一次。

有没有办法在我的 urls.py 中使用这种类型的构造并运行我的测试?我是否有理由不应该在 urls.py 中使用这种类型的条件?

最佳答案

正如你所说,使用 @override_settings(DEBUG=True)不会工作,因为 Django 已经加载了 URL 配置并评估了 settings.DEBUG .

另一种方法是创建另一个始终包含调试 View 的根 URL 配置。

# mysite/debug_urls.py
from django.conf.urls import url
from mysite.urls import urlpatterns as mysite_urlpatterns

urlpatterns = mysite_urlpatterns + [
url(...),
]

然后,在您的测试中,override the URL config :

@override_settings(ROOT_URLCONF='mysite.debug_urls') 

关于django - 在 Django test.py 文件中进行每次测试后,如何重新评估我的 urls.py 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40731246/

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