2017-11-10 4 views
1

フラスコのtest_clientでのテストでは、JSONレスポンスを自動的にデコードする方法がないことがわかりました。Flaskを使った自動JSONデコード

サインインプロセスをテストするため、私が持っているいくつかのpytestコードは次のとおりです。

@pytest.mark.parametrize('user_info', [sign_in]) 
def test_sign_in_post(self, user_info, client): 
    r = client.post(
     f'/{ApiConfig.name}/sign_in', 
     data=json.dumps(user_info), 
     content_type='application/json', 
    ) 
    assert r.status_code == 200 
    assert 'session_key' in json.loads(r.data.decode()) 

私が求めている部分がjson.loads(r.data.decode())スニペットです。これを行うより良い方法はありますか? requestsモジュールにおいて

は、例えば、コードは、フラスコ1.0がリリースされると、応答オブジェクトはちょうどrequestようget_json方法を有することになるassert 'session_key' in r.json()

答えて

1

あろう。それまでは、はい、自分でロードする必要があります。

from flask import json 

rv = client.get('/api/users') 
json.loads(rv.get_data()) 
関連する問題