Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add test case for abort with jsonify #827

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
118 changes: 118 additions & 0 deletions tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -745,6 +745,124 @@ def test_abort_custom_message(self):
def test_abort_type(self):
self.assertRaises(HTTPException, lambda: flask_restful.abort(404))

def test_flask_abort_with_jsonify(self):
""" Tests that flask.abort with response returns status_code as 200
if status_code is unspecified, and data equals that provided
by flask.jsonify(dict)

Author: wangxue666666, billyrrr

"""

class HelloBombAbort(flask_restful.Resource):
def get(self):
flask.abort(
# Abort with code equal 401 in data only
flask.jsonify(dict(code=401, msg="error message 1"))
)

app = Flask(__name__)
api = flask_restful.Api(app)
api.add_resource(HelloBombAbort, '/bomb')

app = app.test_client()
resp = app.get('/bomb')

resp_dict = json.loads(resp.data.decode())
self.assertEquals(resp.status_code, 200)
self.assertDictEqual(resp_dict,
{'code': 401, 'msg': 'error message 1'})

def test_fr_abort_with_jsonify(self):
""" Tests that flask_restful.abort with response returns status_code
as 200 if status_code is unspecified, and data equals that provided
by flask.jsonify(dict)

Author: wangxue666666, billyrrr

"""

class HelloBombAbort(flask_restful.Resource):
def get(self):
flask_restful.abort(
# Abort with code equal 401 in data only
flask.jsonify(dict(code=401, msg="error message 1"))
)

app = Flask(__name__)
api = flask_restful.Api(app)
api.add_resource(HelloBombAbort, '/bomb')

app = app.test_client()
resp = app.get('/bomb')

resp_dict = json.loads(resp.data.decode())
self.assertEquals(resp.status_code, 200)
self.assertDictEqual(resp_dict,
{'code': 401, 'msg': 'error message 1'})

def test_flask_abort_status_code_specified(self):
""" Tests that flask.abort with response returns correct status_code
and data["code"] if the two are unequal.

Author: wangxue666666, billyrrr

"""

class HelloBombAbort(flask_restful.Resource):
def get(self):
flask.abort(
flask.Response(
response=json.dumps(
dict(code=401, msg="error message 1")
),
status=400
)
)

app = Flask(__name__)
api = flask_restful.Api(app)
api.add_resource(HelloBombAbort, '/bomb')

app = app.test_client()
resp = app.get('/bomb')

resp_dict = json.loads(resp.data.decode())
self.assertEquals(resp.status_code, 400)
self.assertDictEqual(resp_dict,
{'code': 401, 'msg': 'error message 1'})

def test_fr_abort_status_code_specified(self):
""" Tests that flask.abort with response returns correct status_code
and data["code"] if the two are unequal.

Author: wangxue666666, billyrrr

"""

class HelloBombAbort(flask_restful.Resource):
def get(self):
flask_restful.abort(
flask.Response(
response=json.dumps(
dict(code=401, msg="error message 1")
),
status=400
)
)

app = Flask(__name__)
api = flask_restful.Api(app)
api.add_resource(HelloBombAbort, '/bomb')

app = app.test_client()
resp = app.get('/bomb')

resp_dict = json.loads(resp.data.decode())
self.assertEquals(resp.status_code, 400)
self.assertDictEqual(resp_dict,
{'code': 401, 'msg': 'error message 1'})

def test_endpoints(self):
app = Flask(__name__)
api = flask_restful.Api(app)
Expand Down