diff --git a/stripe/error.py b/stripe/error.py index 2423d88b1..e9e194e65 100644 --- a/stripe/error.py +++ b/stripe/error.py @@ -26,11 +26,11 @@ def __init__(self, message=None, http_body=None, http_status=None, self.request_id = self.headers.get('request-id', None) def __str__(self): + msg = self._message or "" if self.request_id is not None: - msg = self._message or "" return u"Request {0}: {1}".format(self.request_id, msg) else: - return self._message + return msg # Returns the underlying `Exception` (base class) message, which is usually # the raw message returned by Stripe's API. This was previously available diff --git a/tests/test_error.py b/tests/test_error.py index a0e4c6395..f86f8e16c 100644 --- a/tests/test_error.py +++ b/tests/test_error.py @@ -24,10 +24,18 @@ def test_formatting_with_request_id(self): else: self.assertEqual(u'Request 123: öre', str(err)) - def test_formatting_with_none(self): + def test_formatting_with_message_none_and_request_id(self): err = StripeError(None, headers={'request-id': '123'}) self.assertEqual(u'Request 123: ', six.text_type(err)) if six.PY2: self.assertEqual('Request 123: ', str(err)) else: self.assertEqual('Request 123: ', str(err)) + + def test_formatting_with_message_none_and_request_id_none(self): + err = StripeError(None) + self.assertEqual(u'', six.text_type(err)) + if six.PY2: + self.assertEqual('', str(err)) + else: + self.assertEqual('', str(err))