Я использую django-rest-framework (последний) для REST API и реализовал несколько тестовых примеров в django, используя встроенный тестовый клиент.
следующий тестовый случай django отлично работал с версией django < 1.5
self.client.put('/core/accounts/%s/'% self.account.id,
data = prepare_dict(self.account),
HTTP_AUTHORIZATION=self.token)
обновлено до django 1.5, все тесты проходят, за исключением тестов, связанных с HTTP PUT при просмотре проблемы нашлось это @https://docs.djangoproject.com/en/dev/releases/1.5/#options-put-and-delete-requests-in-the-test-client
Если вы использовали параметр данных в запросе PUT без content_type, вы должны закодировать свои данные, прежде чем передавать их на тест клиента и задайте аргумент content_type.
Итак, обновил мой тест, чтобы отразить это изменение и попытался следовать, но все же получаю http 415 вместо http 200
from django.test.client import MULTIPART_CONTENT, BOUNDARY, encode_multipart
self.client.put('/core/accounts/%s/'% self.account.id,
data = encode_multipart(BOUNDARY, prepare_dict(self.account)),
content_type=MULTIPART_CONTENT,
HTTP_AUTHORIZATION=self.token)
Любая идея, что мне не хватает? P.S: Вся функциональность работает отлично от встроенного веб-интерфейса django-rest-framework