def test_server_exception_empty_body(self):
        error_body = _get_error_body()

        fake_session = utils.FakeSession({'Content-Type': 'application/json'},
                                         error_body, 500)

        client = http.SessionClient(session=fake_session)

        error = self.assertRaises(exc.InternalServerError, client.json_request,
                                  'GET', '/v1/resources')

        self.assertEqual('Internal Server Error (HTTP 500)', str(error))
    def test_server_exception_msg_and_traceback(self):
        error_msg = 'another test error'
        error_trace = ("\"Traceback (most recent call last):\\n\\n  "
                       "File \\\"/usr/local/lib/python2.7/...")
        error_body = _get_error_body(error_msg, error_trace)

        fake_session = utils.FakeSession({'Content-Type': 'application/json'},
                                         error_body, 500)

        client = http.SessionClient(session=fake_session)

        error = self.assertRaises(exc.InternalServerError, client.json_request,
                                  'GET', '/v1/resources')

        self.assertEqual(
            '%(error)s (HTTP 500)\n%(trace)s' % {
                'error': error_msg,
                'trace': error_trace
            }, "%(error)s\n%(details)s" % {
                'error': str(error),
                'details': str(error.details)
            })