Ensure that failing responses are logged

The boolean value of a failed response is False and so the way we
populate the log output does not work when the request failed.

When logging check that a response is not None rather than simply
checking it's boolean value.

Change-Id: I07fb46f156fdf8267fd3d4dc7c587cd604838d73
Closes-Bug: #1451625
This commit is contained in:
Jamie Lennox
2015-05-05 10:59:40 +10:00
parent 39b7f963f5
commit c7ec27a448
2 changed files with 13 additions and 1 deletions

View File

@@ -201,7 +201,7 @@ class Session(object):
if not logger.isEnabledFor(logging.DEBUG):
return
if response:
if response is not None:
if not status_code:
status_code = response.status_code
if not headers:

View File

@@ -174,6 +174,18 @@ class SessionTests(utils.TestCase):
self.assertEqual(v, resp.headers[k])
self.assertNotIn(v, self.logger.output)
def test_logs_failed_output(self):
"""Test that output is logged even for failed requests"""
session = client_session.Session()
body = uuid.uuid4().hex
self.stub_url('GET', text=body, status_code=400)
resp = session.get(self.TEST_URL, raise_exc=False)
self.assertEqual(resp.status_code, 400)
self.assertIn(body, self.logger.output)
def test_logging_cacerts(self):
path_to_certs = '/path/to/certs'
session = client_session.Session(verify=path_to_certs)