Opened 16 years ago
Last modified 5 years ago
#12227 new Bug
PREPEND_WWW breaks the test client
| Reported by: | Andy Baker | Owned by: | |
|---|---|---|---|
| Component: | Testing framework | Version: | 1.1 |
| Severity: | Normal | Keywords: | test client, redirect, prepend_www |
| Cc: | andy@… | Triage Stage: | Accepted |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
With PREPEND_WWW set to true the test client will always give a 301 status_code:
>>> from django.test.client import Client
>>> c = Client()
>>> r = c.get('/admin/', follow=True)
>>> r.status_code
301
>>> r.redirect_chain
[('http://www.testserver/admin/', 301), ('http://www.testserver/admin/', 301)]
Attachments (1)
Change History (9)
comment:1 by , 16 years ago
comment:2 by , 16 years ago
| Triage Stage: | Unreviewed → Accepted |
|---|
comment:3 by , 15 years ago
| Severity: | → Normal |
|---|---|
| Type: | → Bug |
comment:4 by , 14 years ago
| Easy pickings: | unset |
|---|---|
| UI/UX: | unset |
Not sure how to fix but I've added a test case which demonstrates the described issue.
comment:5 by , 12 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:7 by , 10 years ago
I’ve been experiencing this and am using SERVER_NAME and host as a fix. Though as the number of tests I write for the project grows it doesn’t seem the most ideal solution.
response = self.client.get('/redirect/', follow=True, SERVER_NAME='www.testserver')
self.assertRedirects(response, '/result/', status_code=301, host='www.testserver')
comment:8 by , 5 years ago
| Owner: | removed |
|---|---|
| Status: | assigned → new |
Note:
See TracTickets
for help on using tickets.
+1, this behaviour serves no purpose. It only makes testing difficult and forces me to never use prepend_www and rather do my redirects at the webserver level. Perhaps PREPEND_WWW should be disabled before every test automatically, since it's not what testing is supposed to test for?