Flask单元测试未接收指定的数据

时间:2015-06-01 21:50:50

标签: python python-3.x flask

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

我错过了什么?

0 个答案:

没有答案