You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.6 KiB
43 lines
1.6 KiB
from ..tokens import verification_email_token
|
|
from django.test import TestCase, Client
|
|
from django.urls import reverse
|
|
|
|
from apps.user.models import LilcityUserProxy
|
|
|
|
|
|
class VerificationEmailTest(TestCase):
|
|
def setUp(self):
|
|
self.client = Client()
|
|
|
|
self.user_1 = LilcityUserProxy.objects.create_user(username='user_1@example.com', password='1234')
|
|
self.token_user_1 = verification_email_token.make_token(self.user_1)
|
|
|
|
self.url = reverse('lilcity:verification-email', kwargs={"token": self.token_user_1, "uid": self.user_1.id})
|
|
|
|
def test_should_verification_email_for_login_user(self):
|
|
self.client.login(username=self.user_1.username, password='1234')
|
|
|
|
response = self.client.get(f'{self.url}')
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
def test_should_is_verification_email_for_user(self):
|
|
self.assertFalse(self.user_1.lilcity_user_settings.is_verification_email)
|
|
|
|
self.client.login(username=self.user_1.username, password='1234')
|
|
self.client.get(f'{self.url}')
|
|
|
|
self.user_1.refresh_from_db()
|
|
self.assertTrue(self.user_1.lilcity_user_settings.is_verification_email)
|
|
|
|
def test_should_anonymous_user(self):
|
|
response = self.client.get(f'{self.url}')
|
|
|
|
self.assertEqual(response.status_code, 400)
|
|
|
|
def test_should_error_if_token_is_not_valid(self):
|
|
user_hacker = LilcityUserProxy.objects.create_user(username='hacker@example.com', password='1234')
|
|
|
|
self.client.login(username=user_hacker.username, password='1234')
|
|
response = self.client.get(f'{self.url}')
|
|
|
|
self.assertEqual(response.status_code, 400)
|
|
|