diff --git a/readthedocs/core/forms.py b/readthedocs/core/forms.py index 6899afa1295..bc062286547 100644 --- a/readthedocs/core/forms.py +++ b/readthedocs/core/forms.py @@ -18,8 +18,8 @@ class UserProfileForm(forms.ModelForm): - first_name = CharField(label=_('First name'), required=False) - last_name = CharField(label=_('Last name'), required=False) + first_name = CharField(label=_('First name'), required=False, max_length=30) + last_name = CharField(label=_('Last name'), required=False, max_length=30) class Meta(object): model = UserProfile diff --git a/readthedocs/rtd_tests/tests/test_profile_views.py b/readthedocs/rtd_tests/tests/test_profile_views.py index cdef5d20906..ba7a2989b24 100644 --- a/readthedocs/rtd_tests/tests/test_profile_views.py +++ b/readthedocs/rtd_tests/tests/test_profile_views.py @@ -35,6 +35,27 @@ def test_edit_profile(self): self.assertEqual(self.user.last_name, 'Docs') self.assertEqual(self.user.profile.homepage, 'readthedocs.org') + def test_edit_profile_with_invalid_values(self): + resp = self.client.get( + reverse('profiles_profile_edit'), + ) + self.assertTrue(resp.status_code, 200) + + resp = self.client.post( + reverse('profiles_profile_edit'), + data={ + 'first_name': 'a' * 31, + 'last_name': 'b' * 31, + 'homepage': 'c' * 101, + } + ) + + FORM_ERROR_FORMAT = 'Ensure this value has at most {} characters (it has {}).' + + self.assertFormError(resp, form='form', field='first_name', errors=FORM_ERROR_FORMAT.format(30, 31)) + self.assertFormError(resp, form='form', field='last_name', errors=FORM_ERROR_FORMAT.format(30, 31)) + self.assertFormError(resp, form='form', field='homepage', errors=FORM_ERROR_FORMAT.format(100, 101)) + def test_delete_account(self): resp = self.client.get( reverse('delete_account')