Files
shoppy/web/tests/test_register.py
T
2025-05-02 08:38:57 +02:00

113 lines
3.5 KiB
Python

from django.contrib.auth import get_user_model
from django.shortcuts import reverse
from django.test import TransactionTestCase
User = get_user_model()
class TestRegister(TransactionTestCase):
def setUp(self) -> None:
self.password = 'theonering'
self.email = 'sauron@mordor.middleearth'
self.first_name = 'Sauron'
self.last_name = 'The Lord of the Rings'
def test_get_register_page(self):
response = self.client.get(reverse('web:register'))
assert response.status_code == 200
def test_create_user_account(self):
response = self.client.post(
reverse('web:register'),
{
'email': self.email,
'password1': self.password,
'password2': self.password,
'first_name': self.first_name,
'last_name': self.last_name,
},
)
user = User.objects.filter(
username=self.email, email=self.email, first_name=self.first_name, last_name=self.last_name
).first()
assert user is not None
assert response.status_code == 302
assert response.url == reverse('web:login')
def test_create_user_account_distinct_password(self):
response = self.client.post(
reverse('web:register'),
{
'email': self.email,
'password1': self.password,
'password2': 'otherpassword',
'first_name': self.first_name,
'last_name': self.last_name,
},
)
assert not User.objects.filter(
username=self.email, email=self.email, first_name=self.first_name, last_name=self.last_name
).exists()
assert response.status_code == 400
def test_create_user_account_no_first_name(self):
response = self.client.post(
reverse('web:register'),
{
'email': self.email,
'password1': self.password,
'password2': 'otherpassword',
'first_name': '',
'last_name': self.last_name,
},
)
assert not User.objects.filter(
username=self.email, email=self.email, first_name='', last_name=self.last_name
).exists()
assert response.status_code == 400
def test_create_user_account_no_last_name(self):
response = self.client.post(
reverse('web:register'),
{
'email': self.email,
'password1': self.password,
'password2': self.password,
'first_name': self.first_name,
'last_name': '',
},
)
assert not User.objects.filter(
username=self.email, email=self.email, first_name=self.first_name, last_name=''
).exists()
assert response.status_code == 400
def test_create_user_account_already_existing(self):
assert User.objects.all().count() == 0
User.objects.create_user(email=self.email, username=self.email)
response = self.client.post(
reverse('web:register'),
{
'email': self.email,
'password1': self.password,
'password2': self.password,
'first_name': self.first_name,
'last_name': self.last_name,
},
)
assert not User.objects.filter(
username=self.email, email=self.email, first_name=self.first_name, last_name=''
).exists()
assert response.status_code == 400