如何在Django中测试新的用户激活?

时间:2017-11-29 10:19:13

标签: django testing django-nose django-contrib

我正在尝试使用django.contrib.auth测试基于django-nose的用户注册视图,其中激活链接正在发送给新用户:

def signup(request):
    if request.method == 'POST':
        user_form = SignUpForm(request.POST)
        profile_form = ProfileForm(request.POST)
        if user_form.is_valid() and profile_form.is_valid():
            user = user_form.save(commit=False)
            user.is_active = False
            user.save()

            user.profile.user_type = profile_form['user_type'].data
            user.save()

            current_site = get_current_site(request)
            subject = 'activation email'
            message = render_to_string('registration/account_activation_email.html', {
                'user': user,
                'domain': current_site.domain,
                'uid': urlsafe_base64_encode(force_bytes(user.pk)),
                'token': account_activation_token.make_token(user),
            })
            user.email_user(subject, message)
            return redirect('account_activation_sent')
    else:
        user_form = SignUpForm()
        profile_form = ProfileForm()
    return render(request, 'registration/signup.html', {
        'user_form': user_form,
        'profile_form': profile_form
    })

目前我使用Django内置电子邮件后端,以便将激活电子邮件发送到服务器终端。

我想测试需要uidtoken的激活视图。有没有办法访问发送给用户的电子邮件?还有其他方法可以测试吗?

在测试中重新生成令牌不起作用,因为哈希值是使用时间戳生成的。

0 个答案:

没有答案