test_auth_backend.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. None,
  14. username=self.user.username,
  15. password=self.password,
  16. )
  17. self.assertEqual(user, self.user)
  18. def test_authenticate_email(self):
  19. """auth authenticates with email instead of username"""
  20. user = backend.authenticate(
  21. None,
  22. username=self.user.email,
  23. password=self.password,
  24. )
  25. self.assertEqual(user, self.user)
  26. def test_authenticate_invalid_credential(self):
  27. """auth handles invalid credentials"""
  28. user = backend.authenticate(
  29. None,
  30. username='InvalidCredential',
  31. password=self.password,
  32. )
  33. self.assertIsNone(user)
  34. def test_authenticate_invalid_password(self):
  35. """auth validates password"""
  36. user = backend.authenticate(
  37. None,
  38. username=self.user.email,
  39. password='Invalid',
  40. )
  41. self.assertIsNone(user)
  42. def test_authenticate_disabled_user(self):
  43. """auth validates disabled state"""
  44. self.user.is_active = False
  45. self.user.save()
  46. user = backend.authenticate(
  47. None,
  48. username=self.user.email,
  49. password=self.password,
  50. )
  51. self.assertIsNone(user)
  52. def test_get_user_valid_pk(self):
  53. """auth backend returns active user for pk given"""
  54. self.assertEqual(backend.get_user(self.user.pk), self.user)
  55. def test_get_user_invalid_pk(self):
  56. """auth backend returns none for invalid pk"""
  57. self.assertIsNone(backend.get_user(self.user.pk + 1))
  58. def test_get_user_disabled(self):
  59. """auth backend returns none for disabled user"""
  60. self.user.is_active = False
  61. self.user.save()
  62. self.assertIsNone(backend.get_user(self.user.pk))