Test & fix Server-side errors
This commit is contained in:
parent
4ba5ce042a
commit
78c3328506
@ -11,6 +11,12 @@ def multiply(a, b):
|
||||
return a * b
|
||||
|
||||
|
||||
@test_app.route('/divide_by_zero')
|
||||
@signature(None)
|
||||
def divide_by_zero():
|
||||
return 1 / 0
|
||||
|
||||
|
||||
class FlaskrTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
@ -24,5 +30,13 @@ class FlaskrTestCase(unittest.TestCase):
|
||||
r = self.app.get('/multiply?a=2&b=5')
|
||||
assert r.data == '10'
|
||||
|
||||
def test_serversideerror(self):
|
||||
r = self.app.get('/divide_by_zero')
|
||||
assert r.status_code == 500
|
||||
self.assertEquals(
|
||||
r.data,
|
||||
''
|
||||
)
|
||||
|
||||
if __name__ == '__main__':
|
||||
test_app.run()
|
||||
|
@ -8,9 +8,7 @@ import wsme
|
||||
import wsme.api
|
||||
import wsme.rest.json
|
||||
import wsme.rest.xml
|
||||
from wsme.rest.args import (
|
||||
args_from_params, args_from_body, combine_args
|
||||
)
|
||||
import wsme.rest.args
|
||||
|
||||
import flask
|
||||
|
||||
@ -30,7 +28,6 @@ def signature(*args, **kw):
|
||||
funcdef, args, kwargs, flask.request.args, flask.request.data,
|
||||
flask.request.content_type
|
||||
)
|
||||
print args, kwargs
|
||||
|
||||
dataformat = None
|
||||
if 'Accept' in flask.request.headers:
|
||||
@ -52,11 +49,11 @@ def signature(*args, **kw):
|
||||
res.mimetype = dataformat.content_type
|
||||
except:
|
||||
data = wsme.api.format_exception(sys.exc_info())
|
||||
res = flask.make_response(dataformat.encode_error(data))
|
||||
if data['faultcode']:
|
||||
res.status = 400
|
||||
res = flask.make_response(dataformat.encode_error(None, data))
|
||||
if data['faultcode'] == 'client':
|
||||
res.status_code = 400
|
||||
else:
|
||||
res.status = 500
|
||||
res.status_code = 500
|
||||
return res
|
||||
|
||||
wrapper.wsme_func = f
|
||||
|
Loading…
x
Reference in New Issue
Block a user