1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- from django.contrib.auth import (
- aauthenticate,
- aget_user,
- alogin,
- alogout,
- aupdate_session_auth_hash,
- )
- from django.contrib.auth.models import AnonymousUser, User
- from django.http import HttpRequest
- from django.test import TestCase, override_settings
- class AsyncAuthTest(TestCase):
- @classmethod
- def setUpTestData(cls):
- cls.test_user = User.objects.create_user(
- "testuser", "test@example.com", "testpw"
- )
- async def test_aauthenticate(self):
- user = await aauthenticate(username="testuser", password="testpw")
- self.assertIsInstance(user, User)
- self.assertEqual(user.username, self.test_user.username)
- user.is_active = False
- await user.asave()
- self.assertIsNone(await aauthenticate(username="testuser", password="testpw"))
- async def test_alogin(self):
- request = HttpRequest()
- request.session = await self.client.asession()
- await alogin(request, self.test_user)
- user = await aget_user(request)
- self.assertIsInstance(user, User)
- self.assertEqual(user.username, self.test_user.username)
- async def test_alogin_without_user(self):
- request = HttpRequest()
- request.user = self.test_user
- request.session = await self.client.asession()
- await alogin(request, None)
- user = await aget_user(request)
- self.assertIsInstance(user, User)
- self.assertEqual(user.username, self.test_user.username)
- async def test_alogout(self):
- await self.client.alogin(username="testuser", password="testpw")
- request = HttpRequest()
- request.session = await self.client.asession()
- await alogout(request)
- user = await aget_user(request)
- self.assertIsInstance(user, AnonymousUser)
- async def test_client_alogout(self):
- await self.client.alogin(username="testuser", password="testpw")
- request = HttpRequest()
- request.session = await self.client.asession()
- await self.client.alogout()
- user = await aget_user(request)
- self.assertIsInstance(user, AnonymousUser)
- async def test_change_password(self):
- await self.client.alogin(username="testuser", password="testpw")
- request = HttpRequest()
- request.session = await self.client.asession()
- request.user = self.test_user
- await aupdate_session_auth_hash(request, self.test_user)
- user = await aget_user(request)
- self.assertIsInstance(user, User)
- async def test_invalid_login(self):
- self.assertEqual(
- await self.client.alogin(username="testuser", password=""), False
- )
- async def test_client_aforce_login(self):
- await self.client.aforce_login(self.test_user)
- request = HttpRequest()
- request.session = await self.client.asession()
- user = await aget_user(request)
- self.assertEqual(user.username, self.test_user.username)
- @override_settings(
- AUTHENTICATION_BACKENDS=[
- "django.contrib.auth.backends.ModelBackend",
- "django.contrib.auth.backends.AllowAllUsersModelBackend",
- ]
- )
- async def test_client_aforce_login_backend(self):
- self.test_user.is_active = False
- await self.test_user.asave()
- await self.client.aforce_login(
- self.test_user,
- backend="django.contrib.auth.backends.AllowAllUsersModelBackend",
- )
- request = HttpRequest()
- request.session = await self.client.asession()
- user = await aget_user(request)
- self.assertEqual(user.username, self.test_user.username)
|