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.
47 lines
1.5 KiB
47 lines
1.5 KiB
from django.test import TestCase, Client
|
|
from django.urls import reverse
|
|
from django.contrib.auth import get_user_model
|
|
|
|
|
|
User = get_user_model()
|
|
|
|
|
|
class LearnerRegistrationTest(TestCase):
|
|
def setUp(self):
|
|
self.client = Client()
|
|
self.url = reverse("lilcity:registration-learner")
|
|
self.user_data = {
|
|
"email": "test@example.com",
|
|
"first_name": "Alice",
|
|
"last_name": "T",
|
|
"password": "12345"
|
|
}
|
|
|
|
def test_get_html_form(self):
|
|
response = self.client.get(self.url)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.templates[0].name, 'auth/registration-learner.html')
|
|
|
|
def test_should_create_user(self):
|
|
self.assertEqual(User.objects.count(), 0)
|
|
|
|
response = self.client.post(self.url, self.user_data)
|
|
|
|
self.assertEqual(response.status_code, 201)
|
|
self.assertTrue(response.json()['success'])
|
|
|
|
user = User.objects.get(email=self.user_data['email'])
|
|
self.assertEqual(user.username, self.user_data['email'])
|
|
self.assertEqual(user.first_name, self.user_data['first_name'])
|
|
self.assertEqual(user.last_name, self.user_data['last_name'])
|
|
|
|
def test_invalid_data(self):
|
|
del self.user_data['email']
|
|
|
|
response = self.client.post(self.url, self.user_data)
|
|
|
|
self.assertEqual(response.status_code, 400)
|
|
self.assertIn('email', response.json())
|
|
|
|
def test_should_redirect_main_page_when_user_not_anonymous(self): # todo
|
|
pass
|
|
|