Running a test on a url returns 302 instead of 200. Yet testing the same urls in production with a redirect tester returns 200. Not really sure what's going on.
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', {})
If I add follow=True
to client.get()
I receive 200 code as expected.
Print the value of response['location']
in your test before your assertEqual
line. It will show you where the client is being redirected to (e.g. the login page).
def test_detail(self):
response = self.client.get('/p/myproduct-detail.html')
print(response['location'])
self.assertEqual(response.status_code, 200)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With