123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- from django.contrib.auth import get_user_model
- from django.test import TestCase
- from misago.users.authbackends import MisagoBackend
- UserModel = get_user_model()
- backend = MisagoBackend()
- class MisagoBackendTests(TestCase):
- def setUp(self):
- self.password = 'Pass.123'
- self.user = UserModel.objects.create_user('BobBoberson', 'bob@test.com', self.password)
- def test_authenticate_username(self):
- """auth authenticates with username"""
- user = backend.authenticate(
- None,
- username=self.user.username,
- password=self.password,
- )
- self.assertEqual(user, self.user)
- def test_authenticate_email(self):
- """auth authenticates with email instead of username"""
- user = backend.authenticate(
- None,
- username=self.user.email,
- password=self.password,
- )
- self.assertEqual(user, self.user)
- def test_authenticate_username_and_email(self):
- """auth authenticates with email and skips username"""
- user = backend.authenticate(
- None,
- username=self.user.username,
- password=self.password,
- email=self.user.email
- )
- self.assertEqual(user, self.user)
- def test_authenticate_wrong_username_and_email(self):
- """auth authenticates with email and invalid username"""
- user = backend.authenticate(
- None,
- username='skipped-username',
- password=self.password,
- email=self.user.email
- )
- self.assertEqual(user, self.user)
- def test_authenticate_invalid_credential(self):
- """auth handles invalid credentials"""
- user = backend.authenticate(
- None,
- username='InvalidCredential',
- password=self.password,
- )
- self.assertIsNone(user)
- def test_authenticate_invalid_password(self):
- """auth validates password"""
- user = backend.authenticate(
- None,
- username=self.user.email,
- password='Invalid',
- )
- self.assertIsNone(user)
- def test_authenticate_disabled_user(self):
- """auth validates disabled state"""
- self.user.is_active = False
- self.user.save()
- user = backend.authenticate(
- None,
- username=self.user.email,
- password=self.password,
- )
- self.assertIsNone(user)
- def test_authenticate_no_data(self):
- """auth has no errors if no recognised credentials are provided"""
- self.user.is_active = False
- self.user.save()
- user = backend.authenticate(None)
- self.assertIsNone(user)
- def test_get_user_valid_pk(self):
- """auth backend returns active user for pk given"""
- self.assertEqual(backend.get_user(self.user.pk), self.user)
- def test_get_user_invalid_pk(self):
- """auth backend returns none for invalid pk"""
- self.assertIsNone(backend.get_user(self.user.pk + 1))
- def test_get_user_disabled(self):
- """auth backend returns none for disabled user"""
- self.user.is_active = False
- self.user.save()
- self.assertIsNone(backend.get_user(self.user.pk))
|