在网址上运行测试会返回302而不是200.然而,使用重定向测试器测试生产中的相同网址会返回200.不确定发生了什么。
tests.py
def test_detail(self):
response = self.client.get('/p/myproduct-detail.html')
self.assertEqual(response.status_code, 200)
urls.py
url(r'^p/(?P<slug>[-\w\d]+).html$', main.views.product_detail,
name='product-detail'),
views.py
def product_detail(request, slug):
stuff...
return render(request, 'product-detail.html', {})
如果我将follow=True
添加到client.get()
,我会按预期收到200个代码。
答案 0 :(得分:2)
在response['location']
行之前在测试中打印assertEqual
的值。它将显示客户端被重定向到的位置(例如登录页面)。
def test_detail(self):
response = self.client.get('/p/myproduct-detail.html')
print(response['location'])
self.assertEqual(response.status_code, 200)