Skip to content

Commit 5f186cc

Browse files
authored
Merge pull request #148 from TTWShell/feature/disable-resp-detail
support HOBBIT_RESPONSE_DETAIL config
2 parents d2fcee1 + 8627a12 commit 5f186cc

File tree

4 files changed

+20
-1
lines changed

4 files changed

+20
-1
lines changed

docs/index.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,9 @@ tests
208208
* - HOBBIT_RESPONSE_MESSAGE_MAPS
209209
- `dict`, `{code: message}`
210210
- Self-defined response message. Set to `{200: "success"}` will return `{"code": 200, "message": "success"}` in response.
211+
* - HOBBIT_RESPONSE_DETAIL
212+
- `True` or `False`
213+
- Default return detail and must set to `False` in production env. Default is `True`. Only used in 500 server error response.
211214

212215
Others
213216
======

hobbit_core/response.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ def gen_response(code: int, message: str = None, detail: Optional[str] = None,
5555
message = resp_msgs.get(code)
5656
if message is None:
5757
message = RESP_MSGS.get(code, 'unknown')
58+
59+
if current_app.config.get("HOBBIT_RESPONSE_DETAIL", True) is False \
60+
and code == 500:
61+
detail = None
62+
5863
return {
5964
'code': str(code) if use_origin_type is False else code,
6065
'message': message, # type: ignore

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def gen_data(data_root='static'):
3232

3333
setup(
3434
name='hobbit-core',
35-
version='3.0.0',
35+
version='3.1.0',
3636
python_requires='>=3.7, <4',
3737
description='Hobbit - A flask project generator.',
3838
long_description=long_description,

tests/test_response.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,17 @@ def test_success_result(self, app):
5959
assert b'"message":"testmsg"' in result.data
6060
app.config['HOBBIT_RESPONSE_MESSAGE_MAPS'] = {}
6161

62+
def test_500_result(self, app):
63+
result = ServerErrorResult('message', detail='detail')
64+
assert result.status_code == 500
65+
excepted = b'{\n"code":"500",\n"data":null,\n"detail":"detail",\n"message":"message"\n}\n' # NOQA
66+
assert excepted == result.data
67+
68+
app.config['HOBBIT_RESPONSE_DETAIL'] = False
69+
result = ServerErrorResult('message', detail='detail')
70+
excepted = b'{\n"code":"500",\n"data":null,\n"detail":null,\n"message":"message"\n}\n' # NOQA
71+
assert excepted == result.data
72+
6273
def test_failed_result(self):
6374
result = FailedResult()
6475
assert result.status_code == 400

0 commit comments

Comments
 (0)