Objeto de archivo de Python a FileStorage de Flask

Estoy tratando de probar mi método upload () en Flask. El único problema es que el objeto FileStorage en Flask tiene un método save () que el objeto File de Python no tiene.

Creo mi archivo de esta manera:

file = open('documents-test/test.pdf') 

Pero no puedo probar mi método upload () porque ese método usa save ().

¿Alguna idea de cómo convertir este objeto de archivo en un objeto de almacenamiento de archivos de matraz?

http://werkzeug.pocoo.org/docs/0.11/datastructures/#werkzeug.datastructures.FileStorage

Necesitaba usar el objeto FileStorage del matraz para una utilidad fuera del marco de prueba y la aplicación en sí misma, esencialmente replicando cómo funciona la carga de un archivo utilizando un formulario. Esto funcionó para mí.

 from werkzeug.datastructures import FileStorage file = None with open('document-test/test.pdf', 'rb') as fp: file = FileStorage(fp) file.save('document-test/test_new.pdf') 

Los métodos de get y post del cliente de prueba de Flask invocan werkzeug.test.EnvironBuilder bajo el capó, por lo que si pasa un diccionario como data argumentos de palabras clave con su archivo, debería poder trabajar con él:

 def test_upload(): with open("document-test/test.pdf", "rb") as your_file: self.app.post("/upload", data={"expected_file_key": your_file}) # Your test here