test_auth_backend.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. from django.contrib.auth import get_user_model
  2. from django.test import TestCase
  3. from misago.users.authbackends import MisagoBackend
  4. UserModel = get_user_model()
  5. backend = MisagoBackend()
  6. class MisagoBackendTests(TestCase):
  7. def setUp(self):
  8. self.password = 'Pass.123'
  9. self.user = UserModel.objects.create_user('BobBoberson', 'bob@test.com', self.password)
  10. def test_authenticate_username(self):
  11. """auth authenticates with username"""
  12. user = backend.authenticate(
  13. username=self.user.username,
  14. password=self.password,
  15. )
  16. self.assertEqual(user, self.user)
  17. def test_authenticate_email(self):
  18. """auth authenticates with email instead of username"""
  19. user = backend.authenticate(
  20. username=self.user.email,
  21. password=self.password,
  22. )
  23. self.assertEqual(user, self.user)
  24. def test_authenticate_invalid_credential(self):
  25. """auth handles invalid credentials"""
  26. user = backend.authenticate(
  27. username='InvalidCredential',
  28. password=self.password,
  29. )
  30. self.assertIsNone(user)
  31. def test_authenticate_invalid_password(self):
  32. """auth validates password"""
  33. user = backend.authenticate(
  34. username=self.user.email,
  35. password='Invalid',
  36. )
  37. self.assertIsNone(user)
  38. def test_authenticate_disabled_user(self):
  39. """auth validates disabled state"""
  40. self.user.is_active = False
  41. self.user.save()
  42. user = backend.authenticate(
  43. username=self.user.email,
  44. password=self.password,
  45. )
  46. self.assertIsNone(user)
  47. def test_get_user_valid_pk(self):
  48. """auth backend returns active user for pk given"""
  49. self.assertEqual(backend.get_user(self.user.pk), self.user)
  50. def test_get_user_invalid_pk(self):
  51. """auth backend returns none for invalid pk"""
  52. self.assertIsNone(backend.get_user(self.user.pk + 1))
  53. def test_get_user_disabled(self):
  54. """auth backend returns none for disabled user"""
  55. self.user.is_active = False
  56. self.user.save()
  57. self.assertIsNone(backend.get_user(self.user.pk))