39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
from test_plus.test import TestCase
|
|
|
|
from ..admin import MyUserCreationForm
|
|
|
|
|
|
class TestMyUserCreationForm(TestCase):
|
|
def setUp(self):
|
|
self.user = self.make_user()
|
|
|
|
def test_clean_username_success(self):
|
|
# Instantiate the form with a new username
|
|
form = MyUserCreationForm({
|
|
'username': 'alamode',
|
|
'password1': '123456',
|
|
'password2': '123456',
|
|
})
|
|
# Run is_valid() to trigger the validation
|
|
valid = form.is_valid()
|
|
self.assertTrue(valid)
|
|
|
|
# Run the actual clean_username method
|
|
username = form.clean_username()
|
|
self.assertEqual('alamode', username)
|
|
|
|
def test_clean_username_false(self):
|
|
# Instantiate the form with the same username as self.user
|
|
form = MyUserCreationForm({
|
|
'username': self.user.username,
|
|
'password1': '123456',
|
|
'password2': '123456',
|
|
})
|
|
# Run is_valid() to trigger the validation, which is going to fail
|
|
# because the username is already taken
|
|
valid = form.is_valid()
|
|
self.assertFalse(valid)
|
|
|
|
# The form.errors dict should contain a single error called 'username'
|
|
self.assertTrue(len(form.errors) == 1)
|
|
self.assertTrue('username' in form.errors)
|