Ensure HTTP errors raise exceptions even when response processing is disabled

This commit is contained in:
sneakypete81 2013-09-06 18:21:21 +01:00
parent e8806426ce
commit 533c2661b1
2 changed files with 22 additions and 2 deletions

View file

@ -124,3 +124,15 @@ class TestHttpErrors(unittest.TestCase):
response = GetOrPost(self.client, method).call(self.test_endpoint) response = GetOrPost(self.client, method).call(self.test_endpoint)
self.assertEqual(response["code"], 202) self.assertEqual(response["code"], 202)
@httpretty.activate
@data(GET, POST)
def test_http_error_with_no_response_processing(self, method):
"""
Check that get/post methods work with response processing disabled
when an HTTP error code is returned.
"""
httpretty.register_uri(method, self.test_uri, status=500)
with self.assertRaises(trovebox.TroveboxError):
response = GetOrPost(self.client, method).call(self.test_endpoint,
process_response=False)

View file

@ -113,7 +113,11 @@ class Http(object):
if process_response: if process_response:
return self._process_response(response) return self._process_response(response)
else: else:
return response.text if 200 <= response.status_code < 300:
return response.text
else:
raise TroveboxError("HTTP Error %d: %s" %
(response.status_code, response.reason))
def post(self, endpoint, process_response=True, files=None, **params): def post(self, endpoint, process_response=True, files=None, **params):
""" """
@ -163,7 +167,11 @@ class Http(object):
if process_response: if process_response:
return self._process_response(response) return self._process_response(response)
else: else:
return response.text if 200 <= response.status_code < 300:
return response.text
else:
raise TroveboxError("HTTP Error %d: %s" %
(response.status_code, response.reason))
def _construct_url(self, endpoint): def _construct_url(self, endpoint):
"""Return the full URL to the specified endpoint""" """Return the full URL to the specified endpoint"""