【问题标题】:Test django allauth socialAccount creation测试 django allauth socialAccount 创建
【发布时间】:2020-11-05 14:10:20
【问题描述】:

当用户使用 socialAccount(在我的例子中是 Google)注册时,我有一个 user_signed_up 信号来测试用户是否使用 socialAccount 注册,如果他们这样做了,那么它将来自 socialAccount 实例的数据与用户相关联模型实例。

我将如何使用 socialAccount 方法创建用户作为测试的一部分,使用 pytest?

信号定义为:

import logging

from allauth.account.signals import user_signed_up
from django.contrib.auth import get_user_model
from django.dispatch import receiver

User = get_user_model()

logger = logging.getLogger("email_app.apps.users")


@receiver(user_signed_up, sender=User, dispatch_uid="apps.users.signals")
def associate_social_data_with_user_model(user, **kwargs):
    if user.socialaccount_set.filter(provider='google').count() < 1:
        logger.info(f"social account single sign on not used. user signed up the old fashioned way. {user = }")
    else:
        extra_data = user.socialaccount_set.filter(provider='google')[0].extra_data
        user.name = extra_data['given_name']
        user.save()

【问题讨论】:

    标签: python django testing django-allauth pytest-django


    【解决方案1】:

    查看allauth.tests.MockedResponse 了解基本信息,特别是allauth.socialaccount.providers.google.tests.GoogleTests.test_user_signed_up_signal。简而言之:信号机制已经在那里进行了测试,您可以使用该测试用例并使用针对您的数据的特定测试对其进行扩展。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-13
      • 1970-01-01
      • 1970-01-01
      • 2016-06-17
      • 2021-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多