Fix ClientException message property not set properly

To reproduce:

    >>> from keystoneauth1 import exceptions
    >>> e = exceptions.ClientException(message="test")
    >>> print(e.message)
    None

Change-Id: If73df85768866fb93d90ff95479f29f64aabe73f
Co-Authored-By: Gage Hugo <gagehugo@gmail.com>
Closes-Bug: #1534363
This commit is contained in:
Tin Lam 2016-02-27 21:36:00 -06:00 committed by David Stanek
parent 8fc7b26776
commit 062dcc9cb2
3 changed files with 35 additions and 7 deletions

View File

@ -17,12 +17,8 @@ __all__ = ('ClientException',)
class ClientException(Exception):
"""The base exception for everything to do with clients."""
message = None
message = "ClientException"
def __init__(self, message=None):
if not message:
if self.message:
message = self.message
else:
message = self.__class__.__name__
super(Exception, self).__init__(message)
self.message = message or self.message
super(ClientException, self).__init__(self.message)

View File

@ -0,0 +1,32 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from keystoneauth1 import exceptions
from keystoneauth1.tests.unit import utils
class ExceptionTests(utils.TestCase):
def test_clientexception_with_message(self):
test_message = 'Unittest exception message.'
exc = exceptions.ClientException(message=test_message)
self.assertEqual(test_message, exc.message)
def test_clientexception_with_no_message(self):
exc = exceptions.ClientException()
self.assertEqual(exceptions.ClientException.__name__,
exc.message)
def test_using_default_message(self):
exc = exceptions.AuthorizationFailure()
self.assertEqual(exceptions.AuthorizationFailure.message,
exc.message)