2009-12-20 7 views
6

La documentación de Django (http://docs.djangoproject.com/en/dev/topics/testing/#django.test.client.Client.post) dicen que hacer esto:¿Cómo enviar cargas de imágenes en las pruebas de Django?

>>> c = Client() 
>>> f = open('wishlist.doc') 
>>> c.post('/customers/wishes/', {'name': 'fred', 'attachment': f}) 
>>> f.close() 

pero cuando lo hago que el campo tiene el mensaje de error "El archivo enviado está vacía." Eso huele a un problema de PIL pero la forma funciona bien en el sitio real.

Leer el archivo y enviarlo en lugar de simplemente un controlador no funciona bien y se comporta igual que pasar una cadena vacía.

Respuesta

6

OK Lo descubrí. Estaba usando la misma imagen ficticia para múltiples campos y Django no restablece el puntero después de validar el primer campo.

También el ejemplo en los documentos no muestra que las imágenes deben abrirse también en modo binario.

+0

Espero que haya creado/abierto un ticket para corregir el ejemplo en documentos;) – SmileyChris

0

Creo que open espera una ruta de archivo relativa a su origen.

No estoy seguro de dónde sería eso cuando se está ejecutando una prueba, pero tal vez intente con una ruta absoluta y vea si funciona?

+0

Estoy usando una ruta absoluta y la imagen se abre bien. –

Cuestiones relacionadas