Include 'request' on TooManyRedirect and RequestBodyUnavailable (#1077)

This commit is contained in:
Tom Christie 2020-07-23 09:55:21 +01:00 committed by GitHub
parent 01287bac99
commit 083d2e9aa0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 4 deletions

View File

@ -100,7 +100,12 @@ class DigestAuth(Auth):
def auth_flow(self, request: Request) -> typing.Generator[Request, Response, None]:
if not request.stream.can_replay():
raise RequestBodyUnavailable("Request body is no longer available.")
raise RequestBodyUnavailable(
"Cannot use digest auth with streaming requests that are unable "
"to replay the request body if a second request is required.",
request=request,
)
response = yield request
if response.status_code != 401 or "www-authenticate" not in response.headers:

View File

@ -376,7 +376,8 @@ class BaseClient:
if not request.stream.can_replay():
raise RequestBodyUnavailable(
"Got a redirect response, but the request body was streaming "
"and is no longer available."
"and is no longer available.",
request=request,
)
return request.stream
@ -628,7 +629,9 @@ class Client(BaseClient):
while True:
if len(history) > self.max_redirects:
raise TooManyRedirects()
raise TooManyRedirects(
"Exceeded maximum allowed redirects.", request=request
)
response = self._send_handling_auth(
request, auth=auth, timeout=timeout, history=history
@ -1159,7 +1162,9 @@ class AsyncClient(BaseClient):
while True:
if len(history) > self.max_redirects:
raise TooManyRedirects()
raise TooManyRedirects(
"Exceeded maximum allowed redirects.", request=request
)
response = await self._send_handling_auth(
request, auth=auth, timeout=timeout, history=history