在使用 Flask 的内置test_client进行测试时,我发现无法自动解码 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())
Run Code Online (Sandbox Code Playgroud)
我要问的部分是json.loads(r.data.decode())
片段。有一个更好的方法吗?
requests
例如,在模块中,代码将是assert 'session_key' in r.json()