Misnamed exception attribute (bug 991936)

- exception.NotImplemented 'action' should have been 'title'
- Automated test coverage of exceptions to catch this in the future

Change-Id: I238e6bc8426ae009f570f0a04d2ea28501ae23fc
This commit is contained in:
Dolph Mathews 2012-04-30 08:05:28 -05:00
parent d65147bda7
commit 330d4af34f
2 changed files with 20 additions and 10 deletions

View File

@ -107,12 +107,6 @@ class Conflict(Error):
title = 'Conflict'
class NotImplemented(Error):
"""The action you have requested has not been implemented."""
code = 501
action = 'Not Implemented'
class UnexpectedError(Error):
"""An unexpected error prevented the server from fulfilling your request.
@ -121,3 +115,9 @@ class UnexpectedError(Error):
"""
code = 500
title = 'Internal Server Error'
class NotImplemented(Error):
"""The action you have requested has not been implemented."""
code = 501
title = 'Not Implemented'

View File

@ -42,6 +42,20 @@ class ExceptionTestCase(test.TestCase):
self.assertNotIn(' ', j['error']['message'])
self.assertTrue(type(j['error']['code']) is int)
def test_all_json_renderings(self):
"""Everything callable in the exception module should be renderable.
... except for the base error class (exception.Error), which is not
user-facing.
This test provides a custom message to bypass docstring parsing, which
should be tested seperately.
"""
for cls in [x for x in exception.__dict__.values() if callable(x)]:
if cls is not exception.Error:
self.assertValidJsonRendering(cls(message='Overriden.'))
def test_validation_error(self):
target = uuid.uuid4().hex
attribute = uuid.uuid4().hex
@ -50,10 +64,6 @@ class ExceptionTestCase(test.TestCase):
self.assertIn(target, str(e))
self.assertIn(attribute, str(e))
def test_unauthorized(self):
e = exception.Unauthorized()
self.assertValidJsonRendering(e)
def test_forbidden_action(self):
action = uuid.uuid4().hex
e = exception.ForbiddenAction(action=action)