diff options
Diffstat (limited to 'tests/model_forms')
| -rw-r--r-- | tests/model_forms/tests.py | 69 |
1 files changed, 59 insertions, 10 deletions
diff --git a/tests/model_forms/tests.py b/tests/model_forms/tests.py index 509413fb61..aadc7a618e 100644 --- a/tests/model_forms/tests.py +++ b/tests/model_forms/tests.py @@ -490,7 +490,7 @@ class ModelFormBaseTest(TestCase): ['slug', 'name']) -class TestWidgetForm(forms.ModelForm): +class FieldOverridesTroughFormMetaForm(forms.ModelForm): class Meta: model = Category fields = ['name', 'url', 'slug'] @@ -498,25 +498,74 @@ class TestWidgetForm(forms.ModelForm): 'name': forms.Textarea, 'url': forms.TextInput(attrs={'class': 'url'}) } + labels = { + 'name': 'Title', + } + help_texts = { + 'slug': 'Watch out! Letters, numbers, underscores and hyphens only.', + } + error_messages = { + 'slug': { + 'invalid': ( + "Didn't you read the help text? " + "We said letters, numbers, underscores and hyphens only!" + ) + } + } +class TestFieldOverridesTroughFormMeta(TestCase): + def test_widget_overrides(self): + form = FieldOverridesTroughFormMetaForm() + self.assertHTMLEqual( + str(form['name']), + '<textarea id="id_name" rows="10" cols="40" name="name"></textarea>', + ) + self.assertHTMLEqual( + str(form['url']), + '<input id="id_url" type="text" class="url" name="url" maxlength="40" />', + ) + self.assertHTMLEqual( + str(form['slug']), + '<input id="id_slug" type="text" name="slug" maxlength="20" />', + ) -class TestWidgets(TestCase): - def test_base_widgets(self): - frm = TestWidgetForm() + def test_label_overrides(self): + form = FieldOverridesTroughFormMetaForm() self.assertHTMLEqual( - str(frm['name']), - '<textarea id="id_name" rows="10" cols="40" name="name"></textarea>' + str(form['name'].label_tag()), + '<label for="id_name">Title:</label>', ) self.assertHTMLEqual( - str(frm['url']), - '<input id="id_url" type="text" class="url" name="url" maxlength="40" />' + str(form['url'].label_tag()), + '<label for="id_url">The URL:</label>', ) self.assertHTMLEqual( - str(frm['slug']), - '<input id="id_slug" type="text" name="slug" maxlength="20" />' + str(form['slug'].label_tag()), + '<label for="id_slug">Slug:</label>', + ) + + def test_help_text_overrides(self): + form = FieldOverridesTroughFormMetaForm() + self.assertEqual( + form['slug'].help_text, + 'Watch out! Letters, numbers, underscores and hyphens only.', ) + def test_error_messages_overrides(self): + form = FieldOverridesTroughFormMetaForm(data={ + 'name': 'Category', + 'url': '/category/', + 'slug': '!%#*@', + }) + form.full_clean() + + error = [ + "Didn't you read the help text? " + "We said letters, numbers, underscores and hyphens only!", + ] + self.assertEqual(form.errors, {'slug': error}) + class IncompleteCategoryFormWithFields(forms.ModelForm): """ |
