Opened 7 years ago

Last modified 16 months ago

#12227 assigned Bug

PREPEND_WWW breaks the test client

Reported by: Andy Baker Owned by: Sharpek
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)

12227.diff (1.2 KB) - added by Mark Lavin 5 years ago.
Added failing test case.

Download all attachments as: .zip

Change History (8)

comment:1 Changed 7 years ago by Stavros Korokithakis

+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?

comment:2 Changed 7 years ago by Eric Holscher

Triage Stage: UnreviewedAccepted

comment:3 Changed 6 years ago by Matt McClanahan

Severity: Normal
Type: Bug

Changed 5 years ago by Mark Lavin

Attachment: 12227.diff added

Added failing test case.

comment:4 Changed 5 years ago by Mark Lavin

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 Changed 3 years ago by Sharpek

Owner: changed from nobody to Sharpek
Status: newassigned

comment:6 Changed 3 years ago by Sharpek

I' going to check&fix this issue.

comment:7 Changed 16 months ago by James Beith

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')
Note: See TracTickets for help on using tickets.
Back to Top