Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro tipo de media não suportado ao realizado o put no endpoint

Olá,

estou tomando o seguinte erro qdo executo o test de um put em um endpoint.

Esse erro não ocorre no Postman, nem quando estou no navegador.

Abaixo, alguns trechos de códigos do projeto para quem puder dar uma força.

test.py

class VideosTestCase(TestCase):

    def setUp(self):
        self.list_url = reverse('videos-list')
        self.video = mommy.make(Video)

    def test_status_code_requisicao_put(self):
        data = {
            'titulo': 'Título de Teste Alterado 2',
            'descricao': 'Minha descrição alterada',
            'url': 'http://www.novaurl.com/nova-slug'
        }
        resp = self.client.put('/videos/1/', data)
        self.assertEquals(resp.status_code, status.HTTP_200_OK)
...

views.py

class VideoViewSet(viewsets.ModelViewSet):
    queryset = Video.objects.all()
    serializer_class = VideoSerializer
    http_method_names = ['get', 'post', 'put', 'patch', 'delete']
...

urls.py

router = routers.DefaultRouter()
router.register('videos', VideoViewSet, basename='Videos')

urlpatterns = [
    path('', include(router.urls)),
    path('admin/', admin.site.urls),
]

saída do erro

..F.
======================================================================
FAIL: test_status_code_requisicao_put (cursosapi.videos.tests.VideosTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File ".../cursosapi/videos/tests.py", line 24, in test_status_code_requisicao_put
    self.assertEquals(resp.status_code, status.HTTP_200_OK)
AssertionError: 415 != 200

----------------------------------------------------------------------
Ran 4 tests in 0.045s

[]'s

1 resposta
solução!

Passando para registrar que descobri o problema.

resp = self.client.put('/videos/1/', data, content_type="application/json")

Só não entendi pq no outro projeto, o put funciona sem informar o content type.

[]'s