mardi 12 janvier 2021

How to test if user can register and is redirected to home page?

I am writing tests in order to see if a user can register and if successful, is redirected to home page.

views.py:

class RegisterPageView(View):
      def get(self, request):
          if request.user.is_authenticated:
              return redirect('/')
          form = RegisterForm()
          return render(request, 'register.html', {'form': form})   

      def post(self, request):
          form = RegisterForm(request.POST)
          if form.is_valid():
              username = form.cleaned_data['username']
              password = form.cleaned_data['password']
              re_password = form.cleaned_data['re_password']
              first_name = form.cleaned_data['first_name']
              last_name = form.cleaned_data['last_name']
              email = form.cleaned_data['email']
              try:
                  user =  User.objects.get(username=form.cleaned_data['username'])
                  context= {'form': form, 'error':'The username you entered has already been taken. Please try another username.'}
                  return render(request, 'register.html', context)
              except User.DoesNotExist:
                  new_user = User(username=username, first_name=first_name, last_name=last_name, email=email)
                  new_user.set_password(password)
                  new_user.save()
                  return redirect('/')
          return render(request, 'register.html', {'form': form})

I have created a class RegisterPageViewtest(TestCase):

def setUp(self):
    self.register_url=reverse('register')
    self.user={
        'username':'username',
        'password':'password',
        'password2':'password',
        'first_name':'first_name',
        'last_name':'last_name',
        'email':'email@gmail.com'
    }

with a function:

def test_user_can_register(self):
    response = self.client.post(self.register_url,self.user,format='text/html')
    self.assertEqual(response.status_code,302)

However, when I run tests I get a response in a console:

AssertionError: 200 != 302

How can I fix it?

Aucun commentaire:

Enregistrer un commentaire