Allow returning http errors with exceptions

before:
    def my_response_method(self):
        ...
        if error:
            return template, {'status'=400}

after:
    def my_response_method(self):
        ...
        if error:
            raise MyResponseError("bad thing happened")
where MyResponseError inherits from HTTPException
This commit is contained in:
Ilya Sukhanov 2014-04-15 21:15:33 -04:00
parent 713815f5c5
commit aa644b4340
2 changed files with 6 additions and 1 deletions

View File

@ -3,6 +3,7 @@ import json
from urlparse import parse_qs, urlparse from urlparse import parse_qs, urlparse
from werkzeug.exceptions import HTTPException
from moto.core.utils import camelcase_to_underscores, method_names_from_class from moto.core.utils import camelcase_to_underscores, method_names_from_class
@ -49,7 +50,10 @@ class BaseResponse(object):
method_names = method_names_from_class(self.__class__) method_names = method_names_from_class(self.__class__)
if action in method_names: if action in method_names:
method = getattr(self, action) method = getattr(self, action)
response = method() try:
response = method()
except HTTPException as http_error:
response = http_error.description, dict(status=http_error.code)
if isinstance(response, basestring): if isinstance(response, basestring):
return 200, headers, response return 200, headers, response
else: else:

View File

@ -7,3 +7,4 @@ requests
sure<1.2.4 sure<1.2.4
xmltodict xmltodict
dicttoxml dicttoxml
werkzeug