Here are the examples of the python api twisted.web.error.InfiniteRedirection taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
7 Examples
3
Example 1
def test_noMessageValidStatus(self):
"""
If no C{message} argument is passed to the L{InfiniteRedirection}
constructor and the C{code} argument is a valid HTTP status code,
C{code} is mapped to a descriptive string to which C{message} is
assigned.
"""
e = error.InfiniteRedirection("200", location="/foo")
self.assertEqual(e.message, "OK to /foo")
3
Example 2
Project: SubliminalCollaborator Source File: test_error.py
Function: test_nomessagevalidstatusnolocation
Function: test_nomessagevalidstatusnolocation
def test_noMessageValidStatusNoLocation(self):
"""
If no C{message} argument is passed to the L{InfiniteRedirection}
constructor and C{location} is also empty and the C{code} argument is a
valid HTTP status code, C{code} is mapped to a descriptive string to
which C{message} is assigned without trying to include an empty
location.
"""
e = error.InfiniteRedirection("200")
self.assertEqual(e.message, "OK")
3
Example 3
Project: SubliminalCollaborator Source File: test_error.py
Function: test_nomessageinvalidstatuslocationexists
Function: test_nomessageinvalidstatuslocationexists
def test_noMessageInvalidStatusLocationExists(self):
"""
If no C{message} argument is passed to the L{InfiniteRedirection}
constructor and C{code} isn't a valid HTTP status code, C{message} stays
C{None}.
"""
e = error.InfiniteRedirection("InvalidCode", location="/foo")
self.assertEqual(e.message, None)
3
Example 4
Project: SubliminalCollaborator Source File: test_error.py
Function: test_messageexistslocationexists
Function: test_messageexistslocationexists
def test_messageExistsLocationExists(self):
"""
If a C{message} argument is passed to the L{InfiniteRedirection}
constructor, the C{message} isn't affected by the value of C{status}.
"""
e = error.InfiniteRedirection("200", "My own message", location="/foo")
self.assertEqual(e.message, "My own message to /foo")
3
Example 5
def test_messageExistsNoLocation(self):
"""
If a C{message} argument is passed to the L{InfiniteRedirection}
constructor and no location is provided, C{message} doesn't try to
include the empty location.
"""
e = error.InfiniteRedirection("200", "My own message")
self.assertEqual(e.message, "My own message")
0
Example 6
def _handleRedirect(self, response, method, uri, headers, redirectCount):
"""
Handle a redirect response, checking the number of redirects already
followed, and extracting the location header fields.
"""
if redirectCount >= self._redirectLimit:
err = error.InfiniteRedirection(
response.code,
'Infinite redirection detected',
location=uri)
raise ResponseFailed([failure.Failure(err)], response)
locationHeaders = response.headers.getRawHeaders('location', [])
if not locationHeaders:
err = error.RedirectWithNoLocation(
response.code, 'No location header field', uri)
raise ResponseFailed([failure.Failure(err)], response)
location = locationHeaders[0]
deferred = self._agent.request(method, location, headers)
return deferred.addCallback(
self._handleResponse, method, uri, headers, redirectCount + 1)
0
Example 7
def _handleRedirect(self, response, method, uri, headers, redirectCount):
"""
Handle a redirect response, checking the number of redirects already
followed, and extracting the location header fields.
This is patched to fix a bug in infinite redirect loop.
"""
if redirectCount >= self._redirectLimit:
err = error.InfiniteRedirection(
response.code,
b'Infinite redirection detected',
location=uri)
raise ResponseFailed([Failure(err)], response)
locationHeaders = response.headers.getRawHeaders(b'location', [])
if not locationHeaders:
err = error.RedirectWithNoLocation(
response.code, b'No location header field', uri)
raise ResponseFailed([Failure(err)], response)
location = self._resolveLocation(
# This is the fix to properly handle redirects
response.request.absoluteURI,
locationHeaders[0]
)
deferred = self._agent.request(method, location, headers)
def _chainResponse(newResponse):
newResponse.setPreviousResponse(response)
return newResponse
deferred.addCallback(_chainResponse)
return deferred.addCallback(
self._handleResponse, method, uri, headers, redirectCount + 1)