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