gpt4 book ai didi

django - Django assertRedirects测试由于http ://testserver prefix而失败

转载 作者:行者123 更新时间:2023-12-04 22:27:26 25 4
gpt4 key购买 nike

我想测试/sitemap.xml/重定向到/sitemap.xml。我正在使用此代码:

res = self.client.get('/sitemap.xml/')
self.assertRedirects(res, '/sitemap.xml', status_code=301)

并得到以下错误:
AssertionError: Response redirected to 'http://testserver/sitemap.xml', expected '/sitemap.xml'

我应该如何编写此测试以避免 testserver冲突?

最佳答案

我猜想重定向网址/响应是使用build_absolute_uri或类似的东西使用fullpath创建的?只是个猜测...

首先,从长远来看,使用urlname代替硬编码路径可能会更容易。 url = reverse('sitemap.xml'),url = reverse('sitemap.xml')+'/'给出一些想法...

Django naming url patterns

无论如何,这可以解决您的问题,而不必理会主机。

res = self.client.get('/sitemap.xml/')
expected_url = res.wsgi_request.build_absolute_uri('/sitemap.xml')
self.assertRedirects(res, expected_url, status_code=301)

(在Django 1.10.6上测试)

关于django - Django assertRedirects测试由于http ://testserver prefix而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50940913/

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