Sto provando a costruire un test per una vista decorata con @login_required, dato che non sono riuscito a farlo funzionare, ho fatto un semplice test e ancora non riesco fallo passare.Django: test fallito su una vista con @login_required
Ecco il codice per il semplice test e la vista:
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() è il risparmio all'utente e v'è una prova all'interno tale metodo vedere che sta lavorando.
Il test fallisce nel response.status_code, restituendo 302 e l'istanza risposta è di HttpResponseRedirect, è orientarli come se non connesso.
Dell'indizio? Mi manca qualcosa?
saluti Esteban
@aeby: ho copiato e incollato il codice e ancora ottenere un 302, stai usando @login_required nella tua vista? –
Django versione 1.1.1 - ricontrollato che la vista testlogin sta lavorando dal browser e che è disponibile solo per il login utente –
Yes I do: da django.contrib.auth.decorators importare login_required @login_required def testlogin (richiesta): restituire HttpResponse ("Test") –