From: Kenneth Reitz Date: Wed, 9 Nov 2011 23:44:55 +0000 (-0800) Subject: dict(o or []) X-Git-Tag: v0.8.0~71 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=35ed9b5f38ea9fa210658d555dbb8e1a71fb66d8;p=services%2Fpython-requests.git dict(o or []) --- diff --git a/requests/models.py b/requests/models.py index 275486a..c38f379 100644 --- a/requests/models.py +++ b/requests/models.py @@ -61,7 +61,7 @@ class Request(object): self.url = url #: Dictionary of HTTP Headers to attach to the :class:`Request `. - self.headers = headers + self.headers = dict(headers or []) #: Dictionary of files to multipart upload (``{filename: content}``). self.files = files @@ -85,7 +85,7 @@ class Request(object): self.allow_redirects = allow_redirects # Dictionary mapping protocol to the URL of the proxy (e.g. {'http': 'foo.bar:3128'}) - self.proxies = proxies + self.proxies = dict(proxies or []) self.data, self._enc_data = self._encode_params(data) self.params, self._enc_params = self._encode_params(params) @@ -99,10 +99,10 @@ class Request(object): self.auth = auth_dispatch(auth) #: CookieJar to attach to :class:`Request `. - self.cookies = cookies + self.cookies = dict(cookies or []) #: Dictionary of configurations for this request. - self.config = config + self.config = dict(config or []) #: True if Request has been sent. self.sent = False @@ -144,27 +144,29 @@ class Request(object): # Pass settings over. response.config = self.config - # Fallback to None if there's no staus_code, for whatever reason. - response.status_code = getattr(resp, 'status', None) + if resp: + + # Fallback to None if there's no staus_code, for whatever reason. + response.status_code = getattr(resp, 'status', None) - # Make headers case-insensitive. - response.headers = CaseInsensitiveDict(getattr(resp, 'headers', None)) + # Make headers case-insensitive. + response.headers = CaseInsensitiveDict(getattr(resp, 'headers', None)) - # Start off with our local cookies. - cookies = self.cookies or dict() + # Start off with our local cookies. + cookies = self.cookies or dict() - # Add new cookies from the server. - if 'set-cookie' in response.headers: - cookie_header = response.headers['set-cookie'] + # Add new cookies from the server. + if 'set-cookie' in response.headers: + cookie_header = response.headers['set-cookie'] - c = SimpleCookie() - c.load(cookie_header) + c = SimpleCookie() + c.load(cookie_header) - for k,v in c.items(): - cookies.update({k: v.value}) + for k,v in c.items(): + cookies.update({k: v.value}) - # Save cookies in Response. - response.cookies = cookies + # Save cookies in Response. + response.cookies = cookies # Save original resopnse for later. response.raw = resp @@ -383,10 +385,10 @@ class Request(object): retries=self.config.get('max_retries', 0) ) except MaxRetryError, e: - if self.config.get('safe_mode', False): - pass - raise ConnectionError(e) - + if not self.config.get('safe_mode', False): + raise ConnectionError(e) + else: + r = None self._build_response(r)