¿Cómo puedo comprobar que un usuario está conectado después de enviar el formulario de registro?Probar que el usuario haya iniciado sesión con éxito
Intenté lo siguiente pero devuelve True
incluso antes de agregar la lógica de inicio de sesión a mi vista de registro.
def test_that_user_gets_logged_in(self):
response = self.client.post(reverse('auth-registration'),
{ 'username':'foo',
'password1':'bar',
'password2':'bar' })
user = User.objects.get(username='foo')
assert user.is_authenticated()
El código que está siendo probado:
class RegistrationView(CreateView):
template_name = 'auth/registration.html'
form_class = UserCreationForm
success_url = '/'
def auth_login(self, request, username, password):
'''
Authenticate always needs to be called before login because it
adds which backend did the authentication which is required by login.
'''
user = authenticate(username=username, password=password)
login(request, user)
def form_valid(self, form):
'''
Overwrite form_valid to login.
'''
#save the user
response = super(RegistrationView, self).form_valid(form)
#Get the user creditials
username = form.cleaned_data['username']
password = form.cleaned_data['password1']
#authenticate and login
self.auth_login(self.request, username, password)
return response
¿Ha intentado 'response.request.user.is_authenticated()'? –
Lo hice, pero el objeto de solicitud no tiene un objeto de usuario. – Pickels