Как отправить изображения в тестах Django? - PullRequest
6 голосов
/ 20 декабря 2009

Документы 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 ]

6 голосов
/ 20 декабря 2009

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

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

0 голосов
/ 20 декабря 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...