Как отправить загрузку изображений в тестах Django?

документы Django (http://docs.djangoproject.com/en/dev/topics/testing/#django.test.client.Client.post) Скажите сделать это:

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

но когда я это делаю, в поле появляется сообщение об ошибке " отправленный файл пуст."Это пахнет как проблема PIL, но форма отлично работает на фактическом сайте.

чтение файла и отправка этого вместо просто дескриптора также не работает и ведет себя так же, как передача пустой строки.

2 ответов


хорошо, я понял. Я использовал одно и то же фиктивное изображение для нескольких полей, и Django не сбрасывает указатель после проверки первого поля.

также пример в документах не показывает, что изображения также должны быть открыты в двоичном режиме.


Я думаю open ожидает путь к файлу относительно того, откуда он вызывается.

Я не уверен, где это будет, когда тест выполняется, но, возможно, попробуйте с абсолютным путем и посмотрите, работает ли он?