python flask:模仿werkzeug FileStorage对象

时间:2017-12-06 23:38:35

标签: python werkzeug

我在flask应用程序中有以下路由,它接受上传的文件并将文件对象抛出到函数中进行验证。这是一个准系统的例子:

def is_file_valid(file):
    if file.filename == 'test':
        return True
    return False

@app.route('/validate', method=['POST'])
def validate():
    file = request.files['file']
    if is_file_valid(file):
        return redirect(url_for('somewhere'))
    return redirect(url_for('somewhere_else'))

我正在尝试创建一个单元测试来测试is_file_valid函数,但是我在创建FileStorage对象使用时遇到了麻烦,这看起来与标准的python文件对象非常相似({ {3}})。

这是我到目前为止所尝试的内容:

import io
with io.open('/path/to/file', 'rb') as f:
    print(f.filename)

但我收到以下错误:

AttributeError: 'io.TextIOWrapper' object has no attribute 'filename'

知道如何在常规python脚本中模仿werkzeug的FileStorage对象吗?

1 个答案:

答案 0 :(得分:0)

回答here。只需要将python文件对象包装在werkzeug FileStorage类中。