Files
GNX-mailEnterprise/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/authentiq/tests.py
Iliyan Angelov c67067a2a4 Mail
2025-09-14 23:24:25 +03:00

103 lines
3.4 KiB
Python

# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
import json
from django.test.client import RequestFactory
from django.test.utils import override_settings
from allauth.socialaccount.tests import OAuth2TestsMixin
from allauth.tests import MockedResponse, TestCase
from .provider import AuthentiqProvider
from .views import AuthentiqOAuth2Adapter
class AuthentiqTests(OAuth2TestsMixin, TestCase):
provider_id = AuthentiqProvider.id
def get_mocked_response(self):
return MockedResponse(
200,
json.dumps(
{
"sub": "ZLARGMFT1M",
"email": "jane@email.invalid",
"email_verified": True,
"given_name": "Jane",
"family_name": "Doe",
}
),
)
def test_default_scopes_no_email(self):
scopes = self.provider.get_default_scope()
self.assertIn("aq:name", scopes)
self.assertNotIn("email", scopes)
@override_settings(
SOCIALACCOUNT_QUERY_EMAIL=True,
)
def test_default_scopes_email(self):
scopes = self.provider.get_default_scope()
self.assertIn("aq:name", scopes)
self.assertIn("email", scopes)
def test_scopes(self):
request = RequestFactory().get(AuthentiqOAuth2Adapter.authorize_url)
scopes = self.provider.get_scope(request)
self.assertIn("openid", scopes)
self.assertIn("aq:name", scopes)
def test_dynamic_scopes(self):
request = RequestFactory().get(
AuthentiqOAuth2Adapter.authorize_url, dict(scope="foo")
)
scopes = self.provider.get_scope(request)
self.assertIn("openid", scopes)
self.assertIn("aq:name", scopes)
self.assertIn("foo", scopes)
@override_settings(
SOCIALACCOUNT_QUERY_EMAIL=True,
SOCIALACCOUNT_EMAIL_REQUIRED=True,
SOCIALACCOUNT_EMAIL_VERIFICATION=True,
)
def test_scopes_required_verified_email(self):
request = RequestFactory().get(AuthentiqOAuth2Adapter.authorize_url)
scopes = self.provider.get_scope(request)
self.assertIn("email~rs", scopes)
self.assertNotIn("email", scopes)
@override_settings(
SOCIALACCOUNT_QUERY_EMAIL=True,
SOCIALACCOUNT_EMAIL_REQUIRED=False,
SOCIALACCOUNT_EMAIL_VERIFICATION=True,
)
def test_scopes_optional_verified_email(self):
request = RequestFactory().get(AuthentiqOAuth2Adapter.authorize_url)
scopes = self.provider.get_scope(request)
self.assertIn("email~s", scopes)
self.assertNotIn("email", scopes)
@override_settings(
SOCIALACCOUNT_QUERY_EMAIL=True,
SOCIALACCOUNT_EMAIL_REQUIRED=True,
SOCIALACCOUNT_EMAIL_VERIFICATION=False,
)
def test_scopes_required_email(self):
request = RequestFactory().get(AuthentiqOAuth2Adapter.authorize_url)
scopes = self.provider.get_scope(request)
self.assertIn("email~r", scopes)
self.assertNotIn("email", scopes)
@override_settings(
SOCIALACCOUNT_QUERY_EMAIL=True,
SOCIALACCOUNT_EMAIL_REQUIRED=False,
SOCIALACCOUNT_EMAIL_VERIFICATION=False,
)
def test_scopes_optional_email(self):
request = RequestFactory().get(AuthentiqOAuth2Adapter.authorize_url)
scopes = self.provider.get_scope(request)
self.assertIn("email", scopes)