Ответ 1
Вы абсолютно на правильном пути - тест на разрыв в этом случае, конечно, объясняется изменением Django в PUT
для тестового клиента.
Ваше исправление тоже выглядит для меня. 415 - это ответ "Неподдерживаемый тип носителя", что означает, что тип содержимого запроса не был обработан каким-либо из парсеров, настроенных для представления.
Обычно в таком случае это должно быть из-за забывания установить тип содержимого запроса, но похоже, что у вас это правильно установлено на multipart/form-data; boundary=...
Что нужно проверить дважды:
- Что именно отображается
response.data
как информация об ошибке? - Что вы настроили в настройке
DEFAULT_PARSER_CLASSES
, если она у вас есть, или что вы установили в атрибуте видаparser_classes
, если он есть? - Убедитесь, что в тесте не было опечатки в
content_type
(даже если оно верно здесь).
Edit
Спасибо за ваши комментарии - это все облегчает. У вас только есть парсер JSON, но вы пытаетесь отправить данные в формате Form. Вы должны либо:
- Добавьте
FormParser
иMultiPartParser
в свои настройки/просмотр, чтобы он поддерживал кодировки форм. (Заметим также, что параметр по умолчаниюDEFAULT_PARSER_CLASSES
включает их, поэтому, если вы ничего не настроите, он будет работать как ожидалось)
или
- Кодировать запрос с использованием
json
кодирования, а не кодирования...data=json.dumps(prepare_dict(self.account)), content_type='application/json'
в тестовом примере.