Wie schreibe ich einen Komponententest für eine Django-Ansicht?
Ich habe Probleme zu verstehen, wie die Komponententests für Django ausgelegt sein sollten.
Nach meinem Verständnis scheint es unmöglich, die ganze Sicht auf einmal zu testen. Wir müssen zwischen Pre-Post- und Post-Anforderungsstatus unterscheiden. Aber ich habe keine Ahnung, wie ich das gestalten soll. Gibt es ein reales Beispiel?
Betrachtet man die Dokumentation, sind die Beispiele zu vereinfacht und konzentrieren sich nur auf das Modell.
@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)
aktualisieren:
Der Versuch, einen Erfolgstest zum Laufen zu bringen, schlägt jedoch fehl:
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, '/')
Fehlermeldung:
AssertionError: Response didn't redirect as expected: Response code was 200 (expected 302)
Ich denke, das liegt daran, dass die form.is_valid () fehlschlägt und nicht umleitet, richtig?