testing - 在 Flask 中测试文件上传

标签 testing flask upload

我有一个 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/

相关文章:

javascript - 在浏览器中使用JS Pact时,如何创建pact文件?

python - 从 Flask View 返回 JSON 响应

android - 如何在不收费的情况下测试IAB

unit-testing - 如何在有限的时间内让自动化测试发挥最大值(value)?

Python列表 |如何删除列表中的括号、引号和逗号?

Python Flask 用逗号分割表单中的文本

javascript - 如何在angularjs中上传同一文件两次?

php - 警告 : file_get_contents failed to open stream: No such file or directory?

iOS 照片上传到服务器

javascript - React 中的单元测试非静态方法