Je veux tester que ma vue renvoie correct json après les processus. voici mon avis:Django - vue de test qui fonctionne avec les requêtes ajax
@login_required
@require_POST
def xxx_view(request):
if 'post_id' in request.POST:
post_id = request.POST['post_id']
post = Post.objects.get(id=post_id)
post.order = 2
post.save()
json_dump = simplejson.dumps({'new_title': post.order,})
return HttpResponse(json_dump, mimetype='application/json')
else:
return HttpResponse('oups')
cela fonctionne correctement. Voici ce que j'ai essayé de tester:
from django.test import TestCase
from django.test.client import Client
from django.utils import simplejson
from app.models import *
c = Client()
class CustomTests(TestCase):
def test_xxx(self):
json_data = simplejson.dumps({'post_id': 1,})
response = client.post('/content/vote/', json_data,
content_type='application/json',
HTTP_X_REQUESTED_WITH='XMLHttpRequest')
self.assertEqual(response.status_code, 302) # this is OK.
self.assertEqual(response.content, 2) # but this fails.
response.content renvoie la chaîne vide.
Merci.
Je ne comprends pas votre deuxième affirmation. 'response.content' serait quelque chose comme' {"new_title": 2} ', sûrement? –
@DanielRoseman Probablement. Mais il retourne la chaîne vide '' – alix
Pourquoi votre vue retient-elle un '302'? Il ne semble pas que vous en délivrez un? – dm03514