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