Тестирование загрузки изображений с Django и Webtest
Кто-нибудь знает, как я могу проверить загрузку изображений с помощью WebTest. Мой текущий код:
form['avatar'] =('avatar', os.path.join(settings.PROJECT_PATH, 'static', 'img', 'avatar.png'))
res = form.submit()
В ответ я получаю следующее сообщение об ошибке: "Загрузить действительное изображение. Загруженный вами файл не был изображением или поврежденным изображением".
Любая помощь будет оценена.
2 ответа
Власть была права. К сожалению (или нет) я нашел его ответ после того, как потратил полчаса на отладку веб-теста. Вот немного больше информации.
Попытка передать только путь к файлам приводит к следующему исключению:
webtest / app.py ", строка 1028, в _get_file_info
ValueError: upload_files должен быть списком кортежей (имя поля, имя файла, содержание файла) или (имя поля, имя файла); ты дал: ...
Проблема в том, что вам не сказали, что он автоматически добавит имя поля к отправке кортежа и сделает кортеж из 3 элементов в один из 4 элементов. Окончательные решения были:
avatar = ('avatar',
file(os.path.join(settings.PROJECT_PATH, '....', 'avatar.png')).read())
Жаль, что нет приличного примера, но я надеюсь, что это поможет кому-то еще)
В настоящее время выбранный ответ не помог мне.
Но я нашел способ предоставить ожидаемые файлы в методе.submit()
form.submit(upload_files=[('avatar', '/../file_path.png'))
С Python 3:
form["avatar"] = ("avatar.png", open(os.path.join(settings.PROJECT_PATH, '....', 'avatar.png', "rb").read())