【发布时间】: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