我有以下代码
class MyClass(restful.Resource):
def get(self):
headers = {'Content-Type': 'text/html'}
return make_response(render_template('myfile.html'),200,headers)
def post(self):
session['CONSUMER_KEY']=request.form.get('consumer_key')
session['CONSUMER_SECRET']=request.form.get('consumer_secret')
render_template('myfile.html')
api.add_resource(MyClass,"/mag/",endpoint="mag")
我写了以下测试:
def mytest(self):
content_type={"Content-Type": "application / x - www - form - urlencoded","Content-Disposition": "form-data"}
response = self.client.post(
api.url_for(MyClass), data = json.dumps({'consumer_key':'testconsumerkey',
'consumer_secret':'testconsumersecret'}),
headers=content_type
)
问题是表单数据为空,多数民众赞成在会话中未设置值。当我调试时,我看到该request.data已填充,但request.form是一个空字典。有人可以建议我如何在测试的发布请求中发送表单数据
编辑:环境详细信息Python 2.7,Flask Web框架,self.client为。我正在使用flask.ext.testing
您似乎对邮件正文的预期格式应该感到困惑。它应该是JSON数据(这是您在测试用例中发送的内容),还是应采用application/x-www-form-urlencoded
格式(这是您声称在测试用例中发送的内容以及端点将读取的内容)?
如果您希望接收JSON数据,则需要更改端点以从中读取数据request.get_json()
。您还需要application/json
在测试用例中将其用作Content-Type标头。
如果您希望接收使用Urlencoded的帖子数据,则只需删除Content-Type标头和即可简化测试案例json.dumps
。只需将数据字典传递给data
参数即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句