duck-booking-tool/accounts/tests.py

52 lines
1.6 KiB
Python

from django.test import TestCase, Client
from django_webtest import WebTest
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
class FrontTest(TestCase):
def setUp(self):
self.client = Client()
def test_registration_page(self):
response = self.client.get('/accounts/register')
self.assertEqual(response.status_code, 200)
class RegFormTest(WebTest):
def test_valid_data(self):
form_data = {
'username': 'test',
'password1': 'password',
'password2': 'password'
}
form = UserCreationForm(form_data)
self.assertTrue(form.is_valid())
user = form.save()
self.assertEqual(user.username, 'test')
# The password must be encrypted by now
self.assertNotEqual(user.password, 'password')
def test_empty(self):
form_data = {}
form = UserCreationForm(form_data)
self.assertFalse(form.is_valid())
self.assertEqual(form.errors, {
'username': ['This field is required.'],
'password1': ['This field is required.'],
'password2': ['This field is required.'],
})
def test_form_error(self):
page = self.app.get('/accounts/register')
page = page.form.submit()
self.assertContains(page, "This field is required.")
def test_form_success(self):
page = self.app.get('/accounts/register')
page.form['username'] = 'test'
page.form['password1'] = 'password'
page.form['password2'] = 'password'
page = page.form.submit()
self.assertRedirects(page, '/')