Buenas!
Estou compartilhando minha solução, caso alguém tenha o mesmo problema.
Tive o mesmo problema do Anderson: o teste com POST não estava passando porque o XML estava habilitado no meu settings.py
:
REST_FRAMEWORK = {
...
'DEFAULT_PARSER_CLASSES': [
'rest_framework.parsers.JSONParser',
'rest_framework_xml.parsers.XMLParser',
],
'DEFAULT_RENDERER_CLASSES': [
'rest_framework.renderers.JSONRenderer',
'rest_framework_xml.renderers.XMLRenderer',
],
}
Uma solução mais simples do que comentar o XMLParser e o XMLRenderer no settings.py
é modificar o próprio teste informando que os dados estão sendo passados em formato JSON através do argumento format='json'
:
def test_requisicao_post_para_criar_curso():
...
response = self.client.post(self.list_url, data=data, format='json')
...
Assim, adaptamos o teste ao código ao invés de adaptar o código ao teste. ;)