Каждый часть в документе multipart/form-data
может иметь свои собственные заголовки, т.е. секция может иметь заголовок Content-Type: text/plain
. Например, эти части могут быть загружены из веб-формы.Как настроить заголовки частей multipart/form-data с помощью django.test.Client?
В the documentation for Django's UploadedFile
class я прочитал
UploadedFile.content_type
Содержание типа заголовка загружено с файлом (например, текст/простой или применение/PDF). Как и любые данные, предоставленные пользователем, вы не должны верить, что загруженный файл на самом деле является типом. Вам все равно нужно подтвердить, что файл содержит содержимое, которое заголовок заголовка типа содержимого - «доверять, но проверять».
Хорошо, я должен проверить файл по отношению к заявленному типу контента. Поэтому, конечно, теперь мне нужно написать несколько тестов, которые проверяют, действительно ли мой сервер правильно проверяет тип контента. Одним из таких тестов было бы сделать запрос на мой сервер с content-type: multipart/form-data
, где хотя бы одна часть имеет контент, который не соответствует его типу содержимого.
Как это сделать? The django.test.Client class has a post
method, который может отправлять запросы типа multipart/form-data
. Несколько частей тела запроса передаются методу в качестве словаря. Ключи этого словаря являются строками, а значениями являются либо строки, либо «файловые объекты».
Я хочу понять:
- как этот словарь превращается в
multipart/form-data
тело запроса в. Каковы заголовки каждой части? - Как вручную установить произвольные заголовки на каждую часть. Как, например, я могу вручную указать заголовок
Content-Type: text/plain
?
Это для ответа; это полезно. Я собираюсь оставить его непроверенным, хотя, пока кто-то не может указать мне на документальный API Django, чтобы делать то, что мне нужно. – jameshfisher
Я искал это, но не смог найти его :(Но я, возможно, просто не выглядел достаточно тяжело ... В любом случае, спасибо! –