Make wsgi app returns Internal Server Error on exception

If no protocol convert the data into a Response and if the data is an exception
it should be returned as an Internal Server Error instead of a succeed
response.
The exception can be used as description for the Internal Server Error.

issue6201
review31951002
This commit is contained in:
Cédric Krier
2017-01-29 01:11:57 +01:00
parent c2b76dd685
commit c0aa69fa23
2 changed files with 6 additions and 3 deletions
+1 -1
View File
@@ -154,7 +154,7 @@ class JSONProtocol:
response['result'] = data
else:
if isinstance(data, Exception):
return InternalServerError()
return InternalServerError(data)
response = data
return Response(json.dumps(response, cls=JSONEncoder),
content_type='application/json')
+5 -2
View File
@@ -6,7 +6,7 @@ import traceback
from werkzeug.wrappers import Response
from werkzeug.routing import Map, Rule
from werkzeug.exceptions import abort, HTTPException
from werkzeug.exceptions import abort, HTTPException, InternalServerError
import wrapt
@@ -82,7 +82,10 @@ class TrytondWSGI(object):
response = cls.response(data, request)
break
else:
response = Response(data)
if isinstance(data, Exception):
response = InternalServerError(data)
else:
response = Response(data)
else:
response = data
# TODO custom process response