Merge branch 'develop' into merge/xero
authorKenneth Reitz <me@kennethreitz.com>
Thu, 24 Feb 2011 06:53:55 +0000 (01:53 -0500)
committerKenneth Reitz <me@kennethreitz.com>
Thu, 24 Feb 2011 06:53:55 +0000 (01:53 -0500)
1  2 
requests/core.py

  from __future__ import absolute_import
  import urllib
  import urllib2
 -
  from urllib2 import HTTPError
  
 -try:
 -    import eventlet
 -    eventlet.monkey_patch()
 -except ImportError:
 -    pass
 -
 -if not 'eventlet' in locals():
 -    try:
 -        from gevent import monkey
 -        monkey.patch_all()
 -    except ImportError:
 -        pass
 -
  from .packages.poster.encode import multipart_encode
- from .packages.poster.streaminghttp import register_openers
+ from .packages.poster.streaminghttp import register_openers, get_handlers
  
  
  __title__ = 'requests'
@@@ -101,33 -108,39 +101,30 @@@ class Request(object)
  
          _handlers = []
  
 -        if self.auth or self.cookiejar:
 -
 -            if self.auth:
 -
 -                authr = urllib2.HTTPPasswordMgrWithDefaultRealm()
 -
 -                authr.add_password(None, self.url, self.auth.username, self.auth.password)
 -                auth_handler = urllib2.HTTPBasicAuthHandler(authr)
 +        if self.auth:
 +            if not isinstance(self.auth.handler, (urllib2.AbstractBasicAuthHandler, urllib2.AbstractDigestAuthHandler)):
 +                auth_manager.add_password(self.auth.realm, self.url, self.auth.username, self.auth.password)
 +                self.auth.handler = self.auth.handler(auth_manager)
 +                auth_manager.add_auth(self.url, self.auth)
  
 -                _handlers.append(auth_handler)
 -
 -            if self.cookiejar:
 -
 -                cookie_handler = urllib2.HTTPCookieProcessor(cookiejar)
 -                _handlers.append(cookie_handler)
 +            _handlers.append(self.auth.handler)
  
-         if self.cookiejar:
-             cookie_handler = urllib2.HTTPCookieProcessor(cookiejar)
-             _handlers.append(cookie_handler)
-         if _handlers:
+             _handlers.extend(get_handlers())
              opener = urllib2.build_opener(*_handlers)
              return opener.open
 -
          else:
              return urllib2.urlopen
  
  
      def _build_response(self, resp):
          """Build internal Response object from given response."""
-         self.response.status_code = resp.code
-         self.response.headers = resp.info().dict or resp.headers
+         
+         self.response.status_code = getattr(resp, 'code', None)
+         self.response.headers = getattr(resp.info(), 'dict', None)
+         self.response.url = getattr(resp, 'url', None)
          self.response.content = resp.read()
-         self.response.url = resp.url
  
 -    
 +
      def send(self, anyway=False):
          """Sends the request. Returns True of successful, false if not.
          If there was an HTTPError during transmission,