101 lines
2.8 KiB
Python
101 lines
2.8 KiB
Python
from django.contrib.auth import get_user_model
|
|
from django.shortcuts import reverse
|
|
from django.test import TestCase
|
|
|
|
User = get_user_model()
|
|
|
|
|
|
class TestRegister(TestCase):
|
|
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_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:index")
|
|
|
|
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": "otherpassword",
|
|
"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
|