]> git.ipfire.org Git - thirdparty/httpx.git/commitdiff
Include 'request' on TooManyRedirect and RequestBodyUnavailable (#1077)
authorTom Christie <tom@tomchristie.com>
Thu, 23 Jul 2020 08:55:21 +0000 (09:55 +0100)
committerGitHub <noreply@github.com>
Thu, 23 Jul 2020 08:55:21 +0000 (09:55 +0100)
httpx/_auth.py
httpx/_client.py

index ab430973c77e21ac708961989cc26c8b2e239110..d60dbdc028643a53306043be36083f8bb8ac4c76 100644 (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:
index 0eac03b74b47b37930a1f2540498dfe4e78de9aa..24812d93d70bee4db94cbb4d062b11da9b44b2cf 100644 (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