Take advantage of the new copy method
authorIan Cordasco <graffatcolmingov@gmail.com>
Sun, 28 Jul 2013 03:08:46 +0000 (23:08 -0400)
committerIan Cordasco <graffatcolmingov@gmail.com>
Sun, 28 Jul 2013 03:08:46 +0000 (23:08 -0400)
requests/auth.py
requests/sessions.py

index 43b3bec..81a3d93 100644 (file)
@@ -145,7 +145,6 @@ class HTTPDigestAuth(AuthBase):
     def handle_401(self, r, **kwargs):
         """Takes the given response and tries digest-auth, if needed."""
 
-        from .models import PreparedRequest
         num_401_calls = getattr(self, 'num_401_calls', 1)
         s_auth = r.headers.get('www-authenticate', '')
 
@@ -159,12 +158,7 @@ class HTTPDigestAuth(AuthBase):
             # to allow our new request to reuse the same one.
             r.content
             r.raw.release_conn()
-            prep = PreparedRequest()
-            prep.method = r.request.method
-            prep.url = r.request.url
-            prep.body = r.request.body
-            prep.headers = r.request.headers.copy()
-            prep.hooks = r.request.hooks
+            prep = r.request.copy()
             prep.prepare_cookies(r.cookies)
 
             prep.headers['Authorization'] = self.build_digest_header(
index ca7e217..11a90f2 100644 (file)
@@ -74,10 +74,7 @@ class SessionRedirectMixin(object):
 
         # ((resp.status_code is codes.see_other))
         while (('location' in resp.headers and resp.status_code in REDIRECT_STATI)):
-            prepared_request = PreparedRequest()
-            prepared_request.body = req.body
-            prepared_request.headers = req.headers.copy()
-            prepared_request.hooks = req.hooks
+            prepared_request = req.copy()
 
             resp.content  # Consume socket so it can be released