Python 3下Flask单元测试中的奇怪行为。
在documentation中,它表示您可以使用data
参数将数据添加到测试请求中。
但是,每当我按照下面的例子使用它时,request.data
总是空回来。进一步证明,当我检查__dict__
对象的request
属性CONTENT_LENGTH == 0
。
import base64
import pytest
import flask
from my_program import api
@pytest.fixture
def test_api():
return api.app.test_client()
def test_patch_accounts_without_payload(test_api):
response = test_api.patch(
'/accounts/{}/'.format(test_settings['accountEntry']['uid']),
data={"first": "Mickey", "last": "Mouse"},
headers={'Content-Type': 'application/json'})
以下是处理此路由的代码(目前它只是一个存根):
@app.route('/accounts/<identifier>/', methods=['PATCH'])
def patch_account_entry(identifier):
app.logger.debug(request.__dict__)
app.logger.debug(request.content_type)
app.logger.debug(request.get_json())
response = jsonify({"message": "Blah", "status": 400})
response.status_code = 400
return response
我错过了什么?