from .compat import urlparse, str
from .cookies import extract_cookies_to_jar
from .utils import parse_dict_header, to_native_string
+from .status_codes import codes
CONTENT_TYPE_FORM_URLENCODED = 'application/x-www-form-urlencoded'
CONTENT_TYPE_MULTI_PART = 'multipart/form-data'
return 'Digest %s' % (base)
- def handle_302(self, r, **kwargs):
+ def handle_redirect(self, r, **kwargs):
"""Reset num_401_calls counter on redirects."""
- try:
- delattr(self, 'num_401_calls')
- except AttributeError:
- pass
- return r
+ if r.status_code in (
+ codes.temporary_redirect,
+ codes.permanent_redirect):
+ setattr(self, 'num_401_calls', 1)
def handle_401(self, r, **kwargs):
"""Takes the given response and tries digest-auth, if needed."""
return _r
- setattr(self, 'num_401_calls', 1)
+ setattr(self, 'num_401_calls', num_401_calls + 1)
return r
def __call__(self, r):
except AttributeError:
pass
r.register_hook('response', self.handle_401)
- r.register_hook('response', self.handle_302)
+ r.register_hook('response', self.handle_redirect)
return r