gpt4 book ai didi

Django 使用额外的 GET 参数测试命名 URL

转载 作者:行者123 更新时间:2023-11-28 19:44:03 26 4
gpt4 key购买 nike

我正在尝试为我正在处理的 Django 应用程序编写一些测试,但我还没有决定我想为每个 View 使用的确切 url。因此,我在测试中使用命名 url。

例如,我有一个名为 dashboard 的 url:

c = Client()
resp = c.get(reverse('dashboard'))

这个 View 应该只对登录用户可用。如果当前用户是匿名的,它应该将他们重定向到登录页面,这也是一个命名的 url。然而,当它这样做时,它使用一个额外的 GET 参数来跟踪它刚刚来自的 url,结果如下:

/login?next=dashboard

当我尝试测试这个重定向时,由于这些额外的参数,它失败了:

# It's expecting '/login' but gets '/login?next=dashboard'
self.assertRedirects(resp, reverse('login'))

显然,如果我将它们硬编码到测试中,它就会起作用:

self.assertRedirects(resp, '/login?next=dashboard')

但是,如果我决定更改我的仪表板 View 的 URL,我就必须更新使用它的每个测试。

我可以做些什么来更轻松地处理这些额外的参数吗?

感谢任何建议。

谢谢。

最佳答案

如您所见,reverse(...) 返回一个字符串。您可以将其用作:

self.assertRedirects(resp, '%s?next=dashboard' % reverse('login'))

关于Django 使用额外的 GET 参数测试命名 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9411457/

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