0

Settings.py

AUTHENTICATION_BACKENDS = (
        'django.contrib.auth.backends.ModelBackend',
)

Tests.py which has the code triggering the error

class LoginTest(TestCase):

    def test_can_redirect_to_user_page_if_authentificated(self):
        test_user = User(username='foo', password='bar', first_name='Testy', last_name='McTestingTon', email='testy@email.com', is_active=True)
        test_user.save()
        current_user = authenticate(username=test_user.username, password=test_user.password)
        print(current_user)

        response = self.client.post('/login', data = {'username' : current_user.username, 'password' : current.password})
        self.assertEqual(response.url, '/users/Testy')

current_user is always returned as None

I've tried numerous advices from other posts here on SO but authenticate still returns None for a user whose is_active I've explicitly set to True and with the ModelBackend added to my settings.py.

Lennuyé
  • 59
  • 1
  • 1
  • 7

1 Answers1

1

You should use create_user to create a user, saving a User object directly will not encrypt the password so will never authenticate

test_user = User.objects.create_user(...)
Iain Shelvington
  • 31,030
  • 3
  • 31
  • 50