diff options
| author | 2020-08-03 10:25:11 +0200 | |
|---|---|---|
| committer | 2020-08-03 10:25:11 +0200 | |
| commit | 685214c5495e0364a57f50c48a8c83d96bd53054 (patch) | |
| tree | e0c473c2081a06282b549c2cfb81907e087b9e5d /pydis_site/tests | |
| parent | Merge pull request #370 from python-discord/role-reminders (diff) | |
| parent | Delete FilterList objects for tests. (diff) | |
Merge pull request #371 from python-discord/whitelist_system
FilterList model and endpoints
Diffstat (limited to 'pydis_site/tests')
| -rw-r--r-- | pydis_site/tests/__init__.py | 0 | ||||
| -rw-r--r-- | pydis_site/tests/test_utils_account.py | 81 | 
2 files changed, 43 insertions, 38 deletions
| diff --git a/pydis_site/tests/__init__.py b/pydis_site/tests/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/pydis_site/tests/__init__.py diff --git a/pydis_site/tests/test_utils_account.py b/pydis_site/tests/test_utils_account.py index e8db7b64..6f8338b4 100644 --- a/pydis_site/tests/test_utils_account.py +++ b/pydis_site/tests/test_utils_account.py @@ -5,7 +5,7 @@ from allauth.socialaccount.models import SocialAccount, SocialLogin  from django.contrib.auth.models import User  from django.contrib.messages.storage.base import BaseStorage  from django.http import HttpRequest -from django.test import TestCase +from django.test import RequestFactory, TestCase  from pydis_site.apps.api.models import Role, User as DiscordUser  from pydis_site.utils.account import AccountAdapter, SocialAccountAdapter @@ -13,28 +13,43 @@ from pydis_site.utils.account import AccountAdapter, SocialAccountAdapter  class AccountUtilsTests(TestCase):      def setUp(self): +        # Create the user          self.django_user = User.objects.create(username="user") +        # Create the roles +        developers_role = Role.objects.create( +            id=1, +            name="Developers", +            colour=0, +            permissions=0, +            position=1 +        ) +        everyone_role = Role.objects.create( +            id=0, +            name="@everyone", +            colour=0, +            permissions=0, +            position=0 +        ) + +        # Create the social accounts          self.discord_account = SocialAccount.objects.create(              user=self.django_user, provider="discord", uid=0          ) - -        self.discord_account_role = SocialAccount.objects.create( +        self.discord_account_one_role = SocialAccount.objects.create(              user=self.django_user, provider="discord", uid=1          ) -          self.discord_account_two_roles = SocialAccount.objects.create(              user=self.django_user, provider="discord", uid=2          ) -          self.discord_account_not_present = SocialAccount.objects.create(              user=self.django_user, provider="discord", uid=3          ) -          self.github_account = SocialAccount.objects.create(              user=self.django_user, provider="github", uid=0          ) +        # Create DiscordUsers          self.discord_user = DiscordUser.objects.create(              id=0,              name="user", @@ -44,35 +59,18 @@ class AccountUtilsTests(TestCase):          self.discord_user_role = DiscordUser.objects.create(              id=1,              name="user present", -            discriminator=0 +            discriminator=0, +            roles=[everyone_role.id]          )          self.discord_user_two_roles = DiscordUser.objects.create(              id=2,              name="user with both roles", -            discriminator=0 +            discriminator=0, +            roles=[everyone_role.id, developers_role.id]          ) -        everyone_role = Role.objects.create( -            id=0, -            name="@everyone", -            colour=0, -            permissions=0, -            position=0 -        ) - -        self.discord_user_role.roles.append(everyone_role.id) -        self.discord_user_two_roles.roles.append(everyone_role.id) - -        developers_role = Role.objects.create( -            id=1, -            name="Developers", -            colour=0, -            permissions=0, -            position=1 -        ) - -        self.discord_user_two_roles.roles.append(developers_role.id) +        self.request_factory = RequestFactory()      def test_account_adapter(self):          """Test that our Allauth account adapter functions correctly.""" @@ -85,13 +83,13 @@ class AccountUtilsTests(TestCase):          adapter = SocialAccountAdapter()          discord_login = SocialLogin(account=self.discord_account) -        discord_login_role = SocialLogin(account=self.discord_account_role) -        discord_login_two_roles = SocialLogin(account=self.discord_account_two_roles) +        discord_login_role = SocialLogin(account=self.discord_account_one_role)          discord_login_not_present = SocialLogin(account=self.discord_account_not_present) +        discord_login_two_roles = SocialLogin(account=self.discord_account_two_roles)          github_login = SocialLogin(account=self.github_account) -        messages_request = HttpRequest() +        messages_request = self.request_factory.get("/")          messages_request._messages = BaseStorage(messages_request)          with patch("pydis_site.utils.account.reverse") as mock_reverse: @@ -108,12 +106,14 @@ class AccountUtilsTests(TestCase):                  with self.assertRaises(ImmediateHttpResponse):                      adapter.is_open_for_signup(messages_request, discord_login_not_present) +                self.assertTrue( +                    adapter.is_open_for_signup(messages_request, discord_login_two_roles) +                ) +                  self.assertEqual(len(messages_request._messages._queued_messages), 4)                  self.assertEqual(mock_redirect.call_count, 4)              self.assertEqual(mock_reverse.call_count, 4) -        self.assertTrue(adapter.is_open_for_signup(HttpRequest(), discord_login_two_roles)) -      def test_social_account_adapter_populate(self):          """Test that our Allauth social account adapter correctly handles data population."""          adapter = SocialAccountAdapter() @@ -122,13 +122,18 @@ class AccountUtilsTests(TestCase):              account=self.discord_account,              user=self.django_user          ) -          discord_login.account.extra_data["discriminator"] = "0000" -        user = adapter.populate_user( -            HttpRequest(), discord_login, +        discord_user = adapter.populate_user( +            self.request_factory.get("/"), discord_login,              {"username": "user"}          ) +        self.assertEqual(discord_user.username, "user#0000") +        self.assertEqual(discord_user.first_name, "user#0000") -        self.assertEqual(user.username, "user#0000") -        self.assertEqual(user.first_name, "user#0000") +        discord_login.account.provider = "not_discord" +        not_discord_user = adapter.populate_user( +            self.request_factory.get("/"), discord_login, +            {"username": "user"} +        ) +        self.assertEqual(not_discord_user.username, "user") | 
