Rafał Pitoń 8 years ago
parent
commit
84bb8378bd
1 changed files with 79 additions and 0 deletions
  1. 79 0
      misago/users/tests/test_auth_backend.py

+ 79 - 0
misago/users/tests/test_auth_backend.py

@@ -0,0 +1,79 @@
+from django.contrib.auth import get_user_model
+from django.test import TestCase
+
+from ..authbackends import MisagoBackend
+
+
+backend = MisagoBackend()
+
+
+class MisagoBackendTests(TestCase):
+    def setUp(self):
+        UserModel = get_user_model()
+
+        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(
+            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(
+            username=self.user.email,
+            password=self.password
+        )
+
+        self.assertEqual(user, self.user)
+
+    def test_authenticate_invalid_credential(self):
+        """auth handles invalid credentials"""
+        user = backend.authenticate(
+            username='InvalidCredential',
+            password=self.password
+        )
+
+        self.assertIsNone(user)
+
+    def test_authenticate_invalid_password(self):
+        """auth validates password"""
+        user = backend.authenticate(
+            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(
+            username=self.user.email,
+            password=self.password
+        )
+
+        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))