summaryrefslogtreecommitdiff
path: root/tests/regressiontests/model_formsets_regress
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2013-02-05 05:39:35 -0500
committerSimon Charette <charette.s@gmail.com>2013-02-05 05:39:35 -0500
commita097ee32d8364045a950d6a36b19630fc34397f1 (patch)
treeb57cf2b53431367308b82ed20c12616ba3fc8660 /tests/regressiontests/model_formsets_regress
parentec469ade2b04b94bfeb59fb0fc7d9300470be615 (diff)
Fixed #17683 -- Make sure `BaseModelFormSet` respects defined widgets.
Diffstat (limited to 'tests/regressiontests/model_formsets_regress')
-rw-r--r--tests/regressiontests/model_formsets_regress/tests.py17
1 files changed, 11 insertions, 6 deletions
diff --git a/tests/regressiontests/model_formsets_regress/tests.py b/tests/regressiontests/model_formsets_regress/tests.py
index 8cadcfc409..fd35eda854 100644
--- a/tests/regressiontests/model_formsets_regress/tests.py
+++ b/tests/regressiontests/model_formsets_regress/tests.py
@@ -261,14 +261,17 @@ class FormsetTests(TestCase):
formset.save()
-class CustomWidget(forms.CharField):
+class CustomWidget(forms.widgets.TextInput):
pass
class UserSiteForm(forms.ModelForm):
class Meta:
model = UserSite
- widgets = {'data': CustomWidget}
+ widgets = {
+ 'id': CustomWidget,
+ 'data': CustomWidget,
+ }
class Callback(object):
@@ -283,24 +286,27 @@ class Callback(object):
class FormfieldCallbackTests(TestCase):
"""
- Regression for #13095: Using base forms with widgets
- defined in Meta should not raise errors.
+ Regression for #13095 and #17683: Using base forms with widgets
+ defined in Meta should not raise errors and BaseModelForm should respect
+ the specified pk widget.
"""
def test_inlineformset_factory_default(self):
Formset = inlineformset_factory(User, UserSite, form=UserSiteForm)
form = Formset().forms[0]
+ self.assertTrue(isinstance(form['id'].field.widget, CustomWidget))
self.assertTrue(isinstance(form['data'].field.widget, CustomWidget))
def test_modelformset_factory_default(self):
Formset = modelformset_factory(UserSite, form=UserSiteForm)
form = Formset().forms[0]
+ self.assertTrue(isinstance(form['id'].field.widget, CustomWidget))
self.assertTrue(isinstance(form['data'].field.widget, CustomWidget))
def assertCallbackCalled(self, callback):
id_field, user_field, data_field = UserSite._meta.fields
expected_log = [
- (id_field, {}),
+ (id_field, {'widget': CustomWidget}),
(user_field, {}),
(data_field, {'widget': CustomWidget}),
]
@@ -318,7 +324,6 @@ class FormfieldCallbackTests(TestCase):
formfield_callback=callback)
self.assertCallbackCalled(callback)
-
class BaseCustomDeleteFormSet(BaseFormSet):
"""
A formset mix-in that lets a form decide if it's to be deleted.