Как отправить загрузку изображений в тестах 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
ожидает путь к файлу относительно того, откуда он вызывается.
Я не уверен, где это будет, когда тест выполняется, но, возможно, попробуйте с абсолютным путем и посмотрите, работает ли он?