diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-05-14 01:28:55 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-05-14 01:28:55 +0000 |
| commit | cb0ddabff3609e408ef30ccb55842cb4e724e329 (patch) | |
| tree | a5d8cf05692aa8bb924878dd1c74e73288c5fad5 | |
| parent | efc30beab10faf4720a96322adb135726662b025 (diff) | |
| parent | d1da173017216a4506d93203a3c1c2fb6bba96b8 (diff) | |
| download | keystone-cb0ddabff3609e408ef30ccb55842cb4e724e329.tar.gz keystone-cb0ddabff3609e408ef30ccb55842cb4e724e329.tar.xz keystone-cb0ddabff3609e408ef30ccb55842cb4e724e329.zip | |
Merge "Enable unicode error message"
| -rw-r--r-- | keystone/exception.py | 12 | ||||
| -rw-r--r-- | tests/test_exception.py | 9 |
2 files changed, 13 insertions, 8 deletions
diff --git a/keystone/exception.py b/keystone/exception.py index eaacfcf0..21844300 100644 --- a/keystone/exception.py +++ b/keystone/exception.py @@ -56,14 +56,10 @@ class Error(StandardError): :raises: KeyError given insufficient kwargs """ - return message or self.__doc__ % kwargs - - def __str__(self): - """Cleans up line breaks and indentation from doc strings.""" - string = super(Error, self).__str__() - string = re.sub('[ \n]+', ' ', string) - string = string.strip() - return string + if not message: + message = re.sub('[ \n]+', ' ', self.__doc__ % kwargs) + message = message.strip() + return message class ValidationError(Error): diff --git a/tests/test_exception.py b/tests/test_exception.py index dffa14ed..4be470eb 100644 --- a/tests/test_exception.py +++ b/tests/test_exception.py @@ -136,3 +136,12 @@ class SecurityErrorTestCase(ExceptionTestCase): e = exception.ForbiddenAction(action=risky_info) self.assertValidJsonRendering(e) self.assertIn(risky_info, str(e)) + + def test_unicode_message(self): + message = u'Comment \xe7a va' + e = exception.Error(message) + self.assertEqual(e.message, message) + try: + unicode(e) + except UnicodeEncodeError: + self.fail("unicode error message not supported") |
