我正在尝试使用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内置电子邮件后端,以便将激活电子邮件发送到服务器终端。
我想测试需要uid
和token
的激活视图。有没有办法访问发送给用户的电子邮件?还有其他方法可以测试吗?
在测试中重新生成令牌不起作用,因为哈希值是使用时间戳生成的。