summaryrefslogtreecommitdiff
path: root/tests/auth_tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auth_tests')
-rw-r--r--tests/auth_tests/test_forms.py177
1 files changed, 93 insertions, 84 deletions
diff --git a/tests/auth_tests/test_forms.py b/tests/auth_tests/test_forms.py
index 3dd9324304..22b0aa6718 100644
--- a/tests/auth_tests/test_forms.py
+++ b/tests/auth_tests/test_forms.py
@@ -76,13 +76,16 @@ class ExtraValidationFormMixin:
class BaseUserCreationFormTest(TestDataMixin, TestCase):
+
+ form_class = BaseUserCreationForm
+
def test_user_already_exists(self):
data = {
"username": "testclient",
"password1": "test123",
"password2": "test123",
}
- form = BaseUserCreationForm(data)
+ form = self.form_class(data)
self.assertFalse(form.is_valid())
self.assertEqual(
form["username"].errors,
@@ -95,7 +98,7 @@ class BaseUserCreationFormTest(TestDataMixin, TestCase):
"password1": "test123",
"password2": "test123",
}
- form = BaseUserCreationForm(data)
+ form = self.form_class(data)
self.assertFalse(form.is_valid())
validator = next(
v
@@ -111,7 +114,7 @@ class BaseUserCreationFormTest(TestDataMixin, TestCase):
"password1": "test123",
"password2": "test",
}
- form = BaseUserCreationForm(data)
+ form = self.form_class(data)
self.assertFalse(form.is_valid())
self.assertEqual(
form["password2"].errors, [str(form.error_messages["password_mismatch"])]
@@ -120,14 +123,14 @@ class BaseUserCreationFormTest(TestDataMixin, TestCase):
def test_both_passwords(self):
# One (or both) passwords weren't given
data = {"username": "jsmith"}
- form = BaseUserCreationForm(data)
+ form = self.form_class(data)
required_error = [str(Field.default_error_messages["required"])]
self.assertFalse(form.is_valid())
self.assertEqual(form["password1"].errors, required_error)
self.assertEqual(form["password2"].errors, required_error)
data["password2"] = "test123"
- form = UserCreationForm(data)
+ form = self.form_class(data)
self.assertFalse(form.is_valid())
self.assertEqual(form["password1"].errors, required_error)
self.assertEqual(form["password2"].errors, [])
@@ -140,7 +143,7 @@ class BaseUserCreationFormTest(TestDataMixin, TestCase):
"password1": "test123",
"password2": "test123",
}
- form = BaseUserCreationForm(data)
+ form = self.form_class(data)
self.assertTrue(form.is_valid())
form.save(commit=False)
self.assertEqual(password_changed.call_count, 0)
@@ -154,7 +157,7 @@ class BaseUserCreationFormTest(TestDataMixin, TestCase):
"password1": "test123",
"password2": "test123",
}
- form = BaseUserCreationForm(data)
+ form = self.form_class(data)
self.assertTrue(form.is_valid())
u = form.save()
self.assertEqual(u.username, "宝")
@@ -168,7 +171,7 @@ class BaseUserCreationFormTest(TestDataMixin, TestCase):
"password1": "pwd2",
"password2": "pwd2",
}
- form = BaseUserCreationForm(data)
+ form = self.form_class(data)
self.assertTrue(form.is_valid())
user = form.save()
self.assertNotEqual(user.username, ohm_username)
@@ -195,7 +198,7 @@ class BaseUserCreationFormTest(TestDataMixin, TestCase):
"password1": "pwd2",
"password2": "pwd2",
}
- form = BaseUserCreationForm(data)
+ form = self.form_class(data)
self.assertFalse(form.is_valid())
self.assertEqual(
form.errors["username"], ["A user with that username already exists."]
@@ -221,11 +224,11 @@ class BaseUserCreationFormTest(TestDataMixin, TestCase):
)
def test_validates_password(self):
data = {
- "username": "testclient",
- "password1": "testclient",
- "password2": "testclient",
+ "username": "otherclient",
+ "password1": "otherclient",
+ "password2": "otherclient",
}
- form = BaseUserCreationForm(data)
+ form = self.form_class(data)
self.assertFalse(form.is_valid())
self.assertEqual(len(form["password2"].errors), 2)
self.assertIn(
@@ -246,76 +249,13 @@ class BaseUserCreationFormTest(TestDataMixin, TestCase):
form = BaseUserCreationForm(data)
self.assertIs(form.is_valid(), True, form.errors)
- def test_custom_form(self):
- class CustomUserCreationForm(BaseUserCreationForm):
- class Meta(BaseUserCreationForm.Meta):
- model = ExtensionUser
- fields = UserCreationForm.Meta.fields + ("date_of_birth",)
-
- data = {
- "username": "testclient",
- "password1": "testclient",
- "password2": "testclient",
- "date_of_birth": "1988-02-24",
- }
- form = CustomUserCreationForm(data)
- self.assertTrue(form.is_valid())
-
- def test_custom_form_with_different_username_field(self):
- class CustomUserCreationForm(BaseUserCreationForm):
- class Meta(BaseUserCreationForm.Meta):
- model = CustomUser
- fields = ("email", "date_of_birth")
-
- data = {
- "email": "test@client222.com",
- "password1": "testclient",
- "password2": "testclient",
- "date_of_birth": "1988-02-24",
- }
- form = CustomUserCreationForm(data)
- self.assertTrue(form.is_valid())
-
- def test_custom_form_hidden_username_field(self):
- class CustomUserCreationForm(BaseUserCreationForm):
- class Meta(BaseUserCreationForm.Meta):
- model = CustomUserWithoutIsActiveField
- fields = ("email",) # without USERNAME_FIELD
-
- data = {
- "email": "testclient@example.com",
- "password1": "testclient",
- "password2": "testclient",
- }
- form = CustomUserCreationForm(data)
- self.assertTrue(form.is_valid())
-
- def test_custom_form_saves_many_to_many_field(self):
- class CustomUserCreationForm(BaseUserCreationForm):
- class Meta(BaseUserCreationForm.Meta):
- model = CustomUserWithM2M
- fields = UserCreationForm.Meta.fields + ("orgs",)
-
- organization = Organization.objects.create(name="organization 1")
-
- data = {
- "username": "testclient@example.com",
- "password1": "testclient",
- "password2": "testclient",
- "orgs": [str(organization.pk)],
- }
- form = CustomUserCreationForm(data)
- self.assertIs(form.is_valid(), True)
- user = form.save(commit=True)
- self.assertSequenceEqual(user.orgs.all(), [organization])
-
def test_password_whitespace_not_stripped(self):
data = {
"username": "testuser",
"password1": " testpassword ",
"password2": " testpassword ",
}
- form = BaseUserCreationForm(data)
+ form = self.form_class(data)
self.assertTrue(form.is_valid())
self.assertEqual(form.cleaned_data["password1"], data["password1"])
self.assertEqual(form.cleaned_data["password2"], data["password2"])
@@ -331,7 +271,7 @@ class BaseUserCreationFormTest(TestDataMixin, TestCase):
]
)
def test_password_help_text(self):
- form = BaseUserCreationForm()
+ form = self.form_class()
self.assertEqual(
form.fields["password1"].help_text,
"<ul><li>"
@@ -340,7 +280,7 @@ class BaseUserCreationFormTest(TestDataMixin, TestCase):
)
def test_password_extra_validations(self):
- class ExtraValidationForm(ExtraValidationFormMixin, BaseUserCreationForm):
+ class ExtraValidationForm(ExtraValidationFormMixin, self.form_class):
def clean_password1(self):
return self.failing_helper("password1")
@@ -370,8 +310,8 @@ class BaseUserCreationFormTest(TestDataMixin, TestCase):
BaseUserCreationForm password validation uses all of the form's data.
"""
- class CustomUserCreationForm(BaseUserCreationForm):
- class Meta(BaseUserCreationForm.Meta):
+ class CustomUserCreationForm(self.form_class):
+ class Meta(self.form_class.Meta):
model = User
fields = ("username", "email", "first_name", "last_name")
@@ -404,13 +344,13 @@ class BaseUserCreationFormTest(TestDataMixin, TestCase):
self.assertIs(form.is_valid(), True, form.errors)
def test_username_field_autocapitalize_none(self):
- form = BaseUserCreationForm()
+ form = self.form_class()
self.assertEqual(
form.fields["username"].widget.attrs.get("autocapitalize"), "none"
)
def test_html_autocomplete_attributes(self):
- form = BaseUserCreationForm()
+ form = self.form_class()
tests = (
("username", "username"),
("password1", "new-password"),
@@ -434,7 +374,76 @@ class BaseUserCreationFormTest(TestDataMixin, TestCase):
self.assertFalse(u.has_usable_password())
-class UserCreationFormTest(TestDataMixin, TestCase):
+class CustomUserCreationFormTest(TestDataMixin, TestCase):
+
+ def test_custom_form(self):
+ class CustomUserCreationForm(BaseUserCreationForm):
+ class Meta(BaseUserCreationForm.Meta):
+ model = ExtensionUser
+ fields = UserCreationForm.Meta.fields + ("date_of_birth",)
+
+ data = {
+ "username": "testclient",
+ "password1": "testclient",
+ "password2": "testclient",
+ "date_of_birth": "1988-02-24",
+ }
+ form = CustomUserCreationForm(data)
+ self.assertTrue(form.is_valid())
+
+ def test_custom_form_with_different_username_field(self):
+ class CustomUserCreationForm(BaseUserCreationForm):
+ class Meta(BaseUserCreationForm.Meta):
+ model = CustomUser
+ fields = ("email", "date_of_birth")
+
+ data = {
+ "email": "test@client222.com",
+ "password1": "testclient",
+ "password2": "testclient",
+ "date_of_birth": "1988-02-24",
+ }
+ form = CustomUserCreationForm(data)
+ self.assertTrue(form.is_valid())
+
+ def test_custom_form_hidden_username_field(self):
+ class CustomUserCreationForm(BaseUserCreationForm):
+ class Meta(BaseUserCreationForm.Meta):
+ model = CustomUserWithoutIsActiveField
+ fields = ("email",) # without USERNAME_FIELD
+
+ data = {
+ "email": "testclient@example.com",
+ "password1": "testclient",
+ "password2": "testclient",
+ }
+ form = CustomUserCreationForm(data)
+ self.assertTrue(form.is_valid())
+
+ def test_custom_form_saves_many_to_many_field(self):
+ class CustomUserCreationForm(BaseUserCreationForm):
+ class Meta(BaseUserCreationForm.Meta):
+ model = CustomUserWithM2M
+ fields = UserCreationForm.Meta.fields + ("orgs",)
+
+ organization = Organization.objects.create(name="organization 1")
+
+ data = {
+ "username": "testclient@example.com",
+ "password1": "testclient",
+ "password2": "testclient",
+ "orgs": [str(organization.pk)],
+ }
+ form = CustomUserCreationForm(data)
+ self.assertIs(form.is_valid(), True)
+ user = form.save(commit=True)
+ self.assertSequenceEqual(user.orgs.all(), [organization])
+
+
+class UserCreationFormTest(BaseUserCreationFormTest):
+
+ form_class = UserCreationForm
+
def test_case_insensitive_username(self):
data = {
"username": "TeStClIeNt",