Próbuję utworzyć test dla widoku, który jest ozdobiony @login_required, ponieważ nie udało mi się go uruchomić, wykonałem prosty test i nadal nie mogę zmusić do przejścia.Django: test kończy się niepowodzeniem w widoku z @login_required
Oto kod do prostego testu i widok:
def test_login(self):
user = self._create_new_user()
self.assertTrue(user.is_active)
login = self.client.login(username=user.username,
password=self.data['password1'])
self.failUnless(login, 'Could not log in')
response = self.client.get('/accounts/testlogin/')
self.assertEqual(response.status_code, 200)
@login_required
def testlogin(request):
print 'testlogin !! '
return HttpResponse('OK')
_create_new_user() oszczędza użytkownikowi i nie jest test wewnątrz tej metody aby zobaczyć, że działa.
test nie powiedzie się w response.status_code, wracając 302 i wystąpienie reakcji jest z HttpResponseRedirect, przekierowuje go jako jeśli nie zalogowany.
jakiś trop? Czegoś mi brakuje?
Pozdrowienia Esteban
@aeby: I skopiowany i wklejony kod i jeszcze dostać 302, używasz @login_required w swoim widoku? –
Django wersja 1.1.1 - Pokój zaznaczone, że widok testlogin działa w przeglądarce i że jest dostępny tylko przez zalogowanego użytkownika –
Tak zrobię: z django.contrib.auth.decorators import login_required @login_required def testlogin (request): return HttpResponse ("Test") –