¿Cómo escribir una prueba unitaria para una vista django?
Tengo problemas para entender cómo deberían diseñarse las pruebas unitarias para django.
Desde mi entendimiento, probar toda la vista de una sola vez parece imposible. Necesitamos distinguir entre los estados de solicitud pre-post y post. Pero no tengo idea de cómo diseñar esto. ¿Hay algún ejemplo de la vida real?
En cuanto a la documentación, los ejemplos están demasiado simplificados y solo se centran en el modelo.
@login_required
def call_view(request, contact_id):
profile = request.user.get_profile()
if request.POST:
form = CallsForm(profile.company, request.POST)
if form.is_valid()
return HttpResponseRedirect('/contact/' + contact_id + '/calls/')
else:
form = CallsForm(profile.company, instance=call)
variables = RequestContext(request, {'form':form}
return render_to_response('conversation.html', variables)
actualizar:
tratando de hacer que una prueba de éxito funcione, pero sigue fallando:
def test_contact_view_success(self):
# same again, but with valid data, then
self.client.login(username='username1', password='password1')
response = self.client.post('/contact/add/', {u'last_name': [u'Johnson'], })
self.assertRedirects(response, '/')
mensaje de error:
AssertionError: Response didn't redirect as expected: Response code was 200 (expected 302)
Creo que esto se debe a que el form.is_valid () falla y no redirige, ¿correcto?