Opened 13 years ago

Last modified 12 years ago

#16040 closed New feature

test.Client does not handle domain changes on redirection follow — at Version 2

Reported by: Jeremy Dunck Owned by: nobody
Component: Testing framework Version: 1.3
Severity: Normal Keywords:
Cc: Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Jeremy Dunck)

The default SERVER_NAME used by the test client is testserver.

I have a multi-tenant site serving www.foo.com and www.bar.com. I also have a view which redirects from /spam/ to /eggs/.

Middleware handles the domain redirection, while a view handles the /spam/ -> /eggs/ redirection.

If the test client requests http://www.foo.com/spam/, it is redirected to http://www.bar.com/spam/, but _handle_redirects, while parsing url into scheme and path, does not also update SERVER_NAME in extras. This causes the 2nd request handling to be handled as though it were for http://www.foo.com/spam/ (again), causing a redirection loop.

I think that just as wsgi.url_scheme is updated for scheme, extraSERVER_NAME should be updated for netloc.

It's debatable to me whether this is a bug or a feature -- I realize multi-tenancy is relatively unusual under Django.

Change History (2)

comment:1 by Jeremy Dunck, 13 years ago

Description: modified (diff)

comment:2 by Jeremy Dunck, 13 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top