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:
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
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
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