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

82 lines
2.7 KiB
Python

# -*- coding: utf-8 -*-
"""
Run just this suite:
python manage.py test allauth.socialaccount.providers.trainingpeaks.tests.TrainingPeaksTests
"""
from __future__ import unicode_literals
from collections import namedtuple
from django.test.utils import override_settings
from allauth.socialaccount.tests import OAuth2TestsMixin
from allauth.tests import MockedResponse, TestCase
from .provider import TrainingPeaksProvider
from .views import TrainingPeaksOAuth2Adapter
class TrainingPeaksTests(OAuth2TestsMixin, TestCase):
provider_id = TrainingPeaksProvider.id
def get_mocked_response(self):
return MockedResponse(
200,
"""{
"Id": 123456,
"FirstName": "John",
"LastName": "Doe",
"Email": "user@example.com",
"DateOfBirth": "1986-02-01T00:00:00",
"CoachedBy": 987654,
"Weight": 87.5223617553711
}""",
) # noqa
def get_login_response_json(self, with_refresh_token=True):
rtoken = ""
if with_refresh_token:
rtoken = ',"refresh_token": "testrf"'
return (
"""{
"access_token" : "testac",
"token_type" : "bearer",
"expires_in" : 600,
"scope": "scopes granted"
%s }"""
% rtoken
)
def test_default_use_sandbox_uri(self):
adapter = TrainingPeaksOAuth2Adapter(None)
self.assertTrue(".sandbox." in adapter.authorize_url)
self.assertTrue(".sandbox." in adapter.access_token_url)
self.assertTrue(".sandbox." in adapter.profile_url)
@override_settings(
SOCIALACCOUNT_PROVIDERS={"trainingpeaks": {"USE_PRODUCTION": True}}
)
def test_use_production_uri(self):
adapter = TrainingPeaksOAuth2Adapter(None)
self.assertFalse(".sandbox." in adapter.authorize_url)
self.assertFalse(".sandbox." in adapter.access_token_url)
self.assertFalse(".sandbox." in adapter.profile_url)
def test_scope_from_default(self):
Request = namedtuple("request", ["GET"])
mock_request = Request(GET={})
scope = self.provider.get_scope(mock_request)
self.assertTrue("athlete:profile" in scope)
@override_settings(
SOCIALACCOUNT_PROVIDERS={
"trainingpeaks": {"SCOPE": ["athlete:profile", "workouts", "workouts:wod"]}
}
)
def test_scope_from_settings(self):
Request = namedtuple("request", ["GET"])
mock_request = Request(GET={})
scope = self.provider.get_scope(mock_request)
for item in ("athlete:profile", "workouts", "workouts:wod"):
self.assertTrue(item in scope)