diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/model_forms/tests.py | 12 | ||||
| -rw-r--r-- | tests/model_formsets/tests.py | 18 |
2 files changed, 28 insertions, 2 deletions
diff --git a/tests/model_forms/tests.py b/tests/model_forms/tests.py index f1cf77a6a6..fcc9d269ec 100644 --- a/tests/model_forms/tests.py +++ b/tests/model_forms/tests.py @@ -11,7 +11,7 @@ from django.core.exceptions import ( ) from django.core.files.uploadedfile import SimpleUploadedFile from django.core.validators import ValidationError -from django.db import connection +from django.db import connection, models from django.db.models.query import EmptyQuerySet from django.forms.models import ( ModelFormMetaclass, construct_instance, fields_for_model, model_to_dict, @@ -545,6 +545,9 @@ class FieldOverridesByFormMetaForm(forms.ModelForm): ) } } + field_classes = { + 'url': forms.URLField, + } class TestFieldOverridesByFormMeta(TestCase): @@ -588,7 +591,7 @@ class TestFieldOverridesByFormMeta(TestCase): def test_error_messages_overrides(self): form = FieldOverridesByFormMetaForm(data={ 'name': 'Category', - 'url': '/category/', + 'url': 'http://www.example.com/category/', 'slug': '!%#*@', }) form.full_clean() @@ -599,6 +602,11 @@ class TestFieldOverridesByFormMeta(TestCase): ] self.assertEqual(form.errors, {'slug': error}) + def test_field_type_overrides(self): + form = FieldOverridesByFormMetaForm() + self.assertIs(Category._meta.get_field('url').__class__, models.CharField) + self.assertIsInstance(form.fields['url'], forms.URLField) + class IncompleteCategoryFormWithFields(forms.ModelForm): """ diff --git a/tests/model_formsets/tests.py b/tests/model_formsets/tests.py index 2d0380195b..217a1a1049 100644 --- a/tests/model_formsets/tests.py +++ b/tests/model_formsets/tests.py @@ -1431,3 +1431,21 @@ class TestModelFormsetOverridesTroughFormMeta(TestCase): form = BookFormSet.form(data={'title': 'Foo ' * 30, 'author': author.id}) form.full_clean() self.assertEqual(form.errors, {'title': ['Title too long!!']}) + + def test_modelformset_factory_field_class_overrides(self): + author = Author.objects.create(pk=1, name='Charles Baudelaire') + BookFormSet = modelformset_factory(Book, fields="__all__", field_classes={ + 'title': forms.SlugField, + }) + form = BookFormSet.form(data={'title': 'Foo ' * 30, 'author': author.id}) + self.assertIs(Book._meta.get_field('title').__class__, models.CharField) + self.assertIsInstance(form.fields['title'], forms.SlugField) + + def test_inlineformset_factory_field_class_overrides(self): + author = Author.objects.create(pk=1, name='Charles Baudelaire') + BookFormSet = inlineformset_factory(Author, Book, fields="__all__", field_classes={ + 'title': forms.SlugField, + }) + form = BookFormSet.form(data={'title': 'Foo ' * 30, 'author': author.id}) + self.assertIs(Book._meta.get_field('title').__class__, models.CharField) + self.assertIsInstance(form.fields['title'], forms.SlugField) |
