我有一个 flask Controller (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)
但是在 Controller 中 request.files
包含:
ImmutableMultiDict: ImmutableMultiDict([('files', <FileStorage: u'myfile.png' ('image/png')>)])
如果我将 'external_data'
替换为 'files'
,我的测试会通过
如何创建 flask test包含 request.files('external_data')
的请求?
最佳答案
您没有显示来自 payload
的来源,这就是问题所在。
payload 应该是原始对象的 dict()
版本的 .copy()
。
关于testing - 在 Flask 中测试文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32861458/