Django测试客户端访问URL时获得301重定向
我正在为Django视图编写单元测试。我观察到我的一个视图返回了重定向代码301,这是不期望的。
这是我前面提到的views.py。
def index(request): return render(request, 'index.html',
{'form': QueryForm()})
def query(request):
if request.is_ajax():
form = QueryForm(request.POST)
return HttpResponse('valid')
以下是urls.py。
urlpatterns = patterns('', url(r'^$', 'core.views.index'),
url(r'^query/$', 'core.views.query')
)
而单元测试将失败。
def so_test(self): response = self.client.post('/')
self.assertEquals(response.status_code, 200)
response = self.client.post('/query', {})
self.assertEquals(response.status_code, 200)
我的问题是:为什么返回状态301?
回答:
您已经定义了一个匹配的URL
/query/
,但是您正在测试/query
。Django正在使用尾部的斜杠重定向到url,因为APPEND_SLASH=True
在您的设置中。
您可能希望将测试更改为:
response = self.client.post('/query/', {})
以上是 Django测试客户端访问URL时获得301重定向 的全部内容, 来源链接: utcz.com/qa/406223.html