Add coverage for squirrely serializer method
This commit is contained in:
parent
8050b496d4
commit
ec57437593
@ -26,6 +26,15 @@ class MockOpenIDProvider:
|
|||||||
return "openid/login/"
|
return "openid/login/"
|
||||||
|
|
||||||
|
|
||||||
|
# see allauth.socialaccount.providers.openid_connect.provider.OpenIDConnectProviderAccount
|
||||||
|
class MockOpenIDConnectProviderAccount:
|
||||||
|
def __init__(self, mock_social_account_dict):
|
||||||
|
self.account = mock_social_account_dict
|
||||||
|
|
||||||
|
def to_str(self):
|
||||||
|
return self.account["name"]
|
||||||
|
|
||||||
|
|
||||||
# see allauth.socialaccount.providers.openid_connect.provider.OpenIDConnectProvider
|
# see allauth.socialaccount.providers.openid_connect.provider.OpenIDConnectProvider
|
||||||
class MockOpenIDConnectProvider:
|
class MockOpenIDConnectProvider:
|
||||||
id = "openid_connect"
|
id = "openid_connect"
|
||||||
@ -72,7 +81,6 @@ class TestApiProfile(DirectoriesMixin, APITestCase):
|
|||||||
THEN:
|
THEN:
|
||||||
- Profile is returned
|
- Profile is returned
|
||||||
"""
|
"""
|
||||||
|
|
||||||
response = self.client.get(self.ENDPOINT)
|
response = self.client.get(self.ENDPOINT)
|
||||||
|
|
||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
@ -81,6 +89,52 @@ class TestApiProfile(DirectoriesMixin, APITestCase):
|
|||||||
self.assertEqual(response.data["first_name"], self.user.first_name)
|
self.assertEqual(response.data["first_name"], self.user.first_name)
|
||||||
self.assertEqual(response.data["last_name"], self.user.last_name)
|
self.assertEqual(response.data["last_name"], self.user.last_name)
|
||||||
|
|
||||||
|
@mock.patch(
|
||||||
|
"allauth.socialaccount.models.SocialAccount.get_provider_account",
|
||||||
|
)
|
||||||
|
@mock.patch(
|
||||||
|
"allauth.socialaccount.adapter.DefaultSocialAccountAdapter.list_providers",
|
||||||
|
)
|
||||||
|
def test_get_profile_w_social(self, mock_list_providers, mock_get_provider_account):
|
||||||
|
"""
|
||||||
|
GIVEN:
|
||||||
|
- Configured user and setup social account
|
||||||
|
WHEN:
|
||||||
|
- API call is made to get profile
|
||||||
|
THEN:
|
||||||
|
- Profile is returned with social accounts
|
||||||
|
"""
|
||||||
|
self.setupSocialAccount()
|
||||||
|
|
||||||
|
openid_provider = (
|
||||||
|
MockOpenIDConnectProvider(
|
||||||
|
app=SocialApp.objects.get(provider_id="keycloak-test"),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
mock_list_providers.return_value = [
|
||||||
|
openid_provider,
|
||||||
|
]
|
||||||
|
mock_get_provider_account.return_value = MockOpenIDConnectProviderAccount(
|
||||||
|
mock_social_account_dict={
|
||||||
|
"name": openid_provider[0].name,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
response = self.client.get(self.ENDPOINT)
|
||||||
|
|
||||||
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
response.data["social_accounts"],
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"provider": "keycloak-test",
|
||||||
|
"name": "Keycloak",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
def test_update_profile(self):
|
def test_update_profile(self):
|
||||||
"""
|
"""
|
||||||
GIVEN:
|
GIVEN:
|
||||||
@ -211,6 +265,41 @@ class TestApiProfile(DirectoriesMixin, APITestCase):
|
|||||||
2,
|
2,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# @mock.patch(
|
||||||
|
# "allauth.socialaccount.adapter.DefaultSocialAccountAdapter.list_providers",
|
||||||
|
# )
|
||||||
|
# def test_get_social_accounts(
|
||||||
|
# self,
|
||||||
|
# mock_list_providers,
|
||||||
|
# ):
|
||||||
|
# """
|
||||||
|
# GIVEN:
|
||||||
|
# - Configured user
|
||||||
|
# WHEN:
|
||||||
|
# - API call is made to get social account providers
|
||||||
|
# THEN:
|
||||||
|
# - Social account providers are returned
|
||||||
|
# """
|
||||||
|
# self.setupSocialAccount()
|
||||||
|
|
||||||
|
# mock_list_providers.return_value = [
|
||||||
|
# MockOpenIDConnectProvider(
|
||||||
|
# app=SocialApp.objects.get(provider_id="keycloak-test"),
|
||||||
|
# ),
|
||||||
|
# ]
|
||||||
|
|
||||||
|
# response = self.client.get(f"{self.ENDPOINT}social_accounts/")
|
||||||
|
|
||||||
|
# self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
|
# self.assertEqual(
|
||||||
|
# response.data[0]["name"],
|
||||||
|
# "Keycloak",
|
||||||
|
# )
|
||||||
|
# self.assertIn(
|
||||||
|
# "keycloak-test/login/?process=connect",
|
||||||
|
# response.data[0]["login_url"],
|
||||||
|
# )
|
||||||
|
|
||||||
def test_disconnect_social_account(self):
|
def test_disconnect_social_account(self):
|
||||||
"""
|
"""
|
||||||
GIVEN:
|
GIVEN:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user