Python 尝试从unittest发布时,Flask API返回错误的请求

Python 尝试从unittest发布时,Flask API返回错误的请求,python,flask,python-unittest,Python,Flask,Python Unittest,我正在尝试编写一个API单元测试,检查数据是否已成功插入数据库。 下面是我的单元测试: def test_api_can_create_request(self): """Test api can create a request""" res = self.client().post('/api/v1/user/', data= self.newRecord) self.assertEqual(res.status_code, 201) 这是setUp方法,它

我正在尝试编写一个API单元测试,检查数据是否已成功插入数据库。 下面是我的单元测试:

    def test_api_can_create_request(self):
    """Test api can create a request"""
    res = self.client().post('/api/v1/user/', data= self.newRecord)
    self.assertEqual(res.status_code, 201)
这是setUp方法,它还定义了测试方法中使用的newRecord对象

    def setUp(self):
    """Declare test variables and initialize app."""
    self.app = create_app(config_filename=app_config['testing'])
    self.client = self.app.test_client
    self.newRecord = {'id': 11, 'requestor':'Alicia Keys', 'type': 'maintenance',
    'status':'Approved', 'desc': 'Description goes here'}
这是一个类,用于处理用于在数据库中创建新记录的post方法:

class RequestResource(Resource):
"""Get all request"""
def get(self):     
    return dtrequest, 200

"""create new request"""
def post(self):
    json_data = request.get_json(force=True)
    if not json_data:
        return {'message': 'No input data provided'}, 400
    dtrequest.append(json_data)
    return {"status":"success", "data": json_data }, 201
但我在尝试测试此方法时遇到以下错误:

我认为您在路由中发布了一个文字词典,而不是首先将其转换为json。因此,请尝试:

import json
res = self.client().post('/api/v1/user/', data= json.dumps(self.newRecord))

你那里的东西看起来不正常…如果你加载这个端点并点击它,你会得到类似的结果吗?如果我在Postman上点击它,效果会很好