微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

基于 Django Unitest 注册类的视图

如何解决基于 Django Unitest 注册类的视图

搜索了很多。我在堆栈上阅读了很多帖子,但找不到答案。是否有可能制作一个测试类,以测试基于注册类的视图?试图找到答案但没有结果。

我的表格:

                         cn      admin      owner
0    SlackIntegration-test1  052355781  052355781
1    SlackIntegration-test2  001753781  052355781
2  SlackIntegration-pidtest  000326781  052355781
3  SlackIntegration-APItest             052355781

我的观点:

class RegisterForm(UserCreationForm):   
    class Meta:
        model = User
        fields = UserCreationForm.Meta.fields + ('username','password1','password2','email')

    def clean_username(self):
        username = self.cleaned_data.get("username")
        if User.objects.filter(username=username).exists():
            raise forms.ValidationError("User with that name already exist")
        return username

    def clean_email(self):
        email = self.cleaned_data.get("email")
        if User.objects.filter(email=email).exists():
            raise forms.ValidationError("Acount with that Email already exist")

和测试:

class Register(FormView):
    template_name = 'profile/register.html'
    form_class = RegisterForm
    redirect_authenticated_user = True
    success_url = reverse_lazy('landing-page')

    def get_context_data(self,**kwargs):
        context = super().get_context_data(**kwargs)     
        accepted_terms = AcceptTerms()
        context['register_form'] = context.get('register_form')
        context['accepted_terms'] = accepted_terms
        return context
    
    def form_valid(self,form): 
        user = form.save()
    
        if user is not None:
            login(self.request,user)
            messages.info(self.request,"account created")

        return super(Register,self).form_valid(form)

    def form_invalid(self,form):
        messages.error(self.request,form.errors)

        return super(Register,self).form_invalid(form)
    

问题是,我的测试没有将发布数据发送到我的视图 = 没有创建用户。有人可以帮我找到解决方案,如何用表单测试CBV?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。