Django test client gets 301 redirection when accessing url
You have defined a url that matches /query/
, but you are testing /query
. Django is redirecting to the url with the trailing slash because APPEND_SLASH=True
in your settings.
You probably want to change your test to:
response = self.client.post('/query/', {})
For me, the problem was that I mistakenly ran the tests with a setting.py
file that had SECURE_SSL_REDIRECT = True
. Changing to SECURE_SSL_REDIRECT = False
solved the issue.
Another option is to use the client
with secure=True
, i.e.:
response = self.client.post('/query/', {}, secure=True)
which will make the client emulate an HTTPS request.