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

61 lines
2.6 KiB
Python

from allauth.socialaccount.models import SocialAccount
from allauth.socialaccount.tests import OAuth2TestsMixin
from allauth.tests import MockedResponse, TestCase
from .provider import GitHubProvider
class GitHubTests(OAuth2TestsMixin, TestCase):
provider_id = GitHubProvider.id
def get_mocked_response(self):
return MockedResponse(
200,
"""
{
"type":"User",
"organizations_url":"https://api.github.com/users/pennersr/orgs",
"gists_url":"https://api.github.com/users/pennersr/gists{/gist_id}",
"received_events_url":"https://api.github.com/users/pennersr/received_events",
"gravatar_id":"8639768262b8484f6a3380f8db2efa5b",
"followers":16,
"blog":"http://www.intenct.info",
"avatar_url":"https://secure.gravatar.com/avatar/8639768262b8484f6a3380f8db2efa5b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png",
"login":"pennersr",
"created_at":"2010-02-10T12:50:51Z",
"company":"IntenCT",
"subscriptions_url":"https://api.github.com/users/pennersr/subscriptions",
"public_repos":14,
"hireable":false,
"url":"https://api.github.com/users/pennersr",
"public_gists":0,
"starred_url":"https://api.github.com/users/pennersr/starred{/owner}{/repo}",
"html_url":"https://github.com/pennersr",
"location":"The Netherlands",
"bio":null,
"name":"Raymond Penners",
"repos_url":"https://api.github.com/users/pennersr/repos",
"followers_url":"https://api.github.com/users/pennersr/followers",
"id":201022,
"following":0,
"email":"raymond.penners@intenct.nl",
"events_url":"https://api.github.com/users/pennersr/events{/privacy}",
"following_url":"https://api.github.com/users/pennersr/following"
}""",
)
def test_account_name_null(self):
"""String conversion when GitHub responds with empty name"""
data = """{
"type": "User",
"id": 201022,
"login": "pennersr",
"name": null
}"""
self.login(MockedResponse(200, data))
socialaccount = SocialAccount.objects.get(uid="201022")
self.assertIsNone(socialaccount.extra_data.get("name"))
account = socialaccount.get_provider_account()
self.assertIsNotNone(account.to_str())
self.assertEqual(account.to_str(), "pennersr")