From e1c4fe21d47df1ec10ef8a46aecdcb0ecfeac67e Mon Sep 17 00:00:00 2001 From: Ian Cordasco Date: Sat, 19 Jan 2013 11:49:52 -0500 Subject: [PATCH 1/2] Fix #1106 --- requests/adapters.py | 3 --- requests/sessions.py | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/requests/adapters.py b/requests/adapters.py index 099a0011..c350ae44 100644 --- a/requests/adapters.py +++ b/requests/adapters.py @@ -13,7 +13,6 @@ import socket from .models import Response from .packages.urllib3.poolmanager import PoolManager, ProxyManager from .packages.urllib3.response import HTTPResponse -from .hooks import dispatch_hook from .compat import urlparse, basestring, urldefrag from .utils import (DEFAULT_CA_BUNDLE_PATH, get_encoding_from_headers, prepend_scheme_if_needed) @@ -109,8 +108,6 @@ class HTTPAdapter(BaseAdapter): response.request = req response.connection = self - # Run the Response hook. - response = dispatch_hook('response', req.hooks, response) return response def get_connection(self, url, proxies=None): diff --git a/requests/sessions.py b/requests/sessions.py index d65877cd..173a4811 100644 --- a/requests/sessions.py +++ b/requests/sessions.py @@ -295,7 +295,7 @@ class Session(SessionRedirectMixin): resp.history = tuple(history) # Response manipulation hook. - self.response = dispatch_hook('response', hooks, resp) + resp = dispatch_hook('response', hooks, resp) return resp From 27e814ad7682c2bd7ae8af503a9dcca7840cde64 Mon Sep 17 00:00:00 2001 From: Ian Cordasco Date: Mon, 21 Jan 2013 20:21:08 -0500 Subject: [PATCH 2/2] Fix failing tests. --- requests/sessions.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/requests/sessions.py b/requests/sessions.py index 173a4811..4ad8d6ab 100644 --- a/requests/sessions.py +++ b/requests/sessions.py @@ -275,6 +275,10 @@ class Session(SessionRedirectMixin): # Prepare the Request. prep = req.prepare() + # If auth hooks are present, they aren't passed to `dispatch_hook` + # As such, we need to update the original hooks dictionary with them + hooks.update(prep.hooks) + # Send the request. resp = self.send(prep, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)