在Flask中上传测试文件

时间:2015-09-30 08:33:00

标签: testing flask upload

我有一个烧瓶控制器(POST)来上传文件:

f = request.files['external_data']
filename = secure_filename(f.filename)
f.save(filename)

我试过测试它:

handle = open(filepath, 'rb')
fs = FileStorage(stream=handle, filename=filename, name='external_data')
payload['files'] = fs
url = '/my/upload/url'
test_client.post(url, data=payload)

但在控制器request.files中包含:

ImmutableMultiDict: ImmutableMultiDict([('files', <FileStorage: u'myfile.png' ('image/png')>)])

如果我将'external_data'替换为'files'

,我的测试就会通过

如何创建包含request.files('external_data')的{​​{3}}请求?

1 个答案:

答案 0 :(得分:0)

您没有显示payload的来源,这就是问题所在。

有效负载可能应该是原始对象.copy()版本的dict()