summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorFlorian Apolloner <florian@apolloner.eu>2013-05-18 05:15:15 -0700
committerFlorian Apolloner <florian@apolloner.eu>2013-05-18 05:15:15 -0700
commit16683f29ea81e1e979ee88c79cbef279046dd8b1 (patch)
tree3f152029bb9d67b0cd195cecf4591ce81e341f8e /tests
parentef73a8eefd2c4836ca2badc67c3b9aa9a0add7bd (diff)
parent756b81dbd1a947351670b66c7e91116abe6aa5c2 (diff)
Merge pull request #1084 from erikr/master
Fixed #13546 -- Easier handling of localize field options in ModelForm
Diffstat (limited to 'tests')
-rw-r--r--tests/model_forms_regress/tests.py35
-rw-r--r--tests/model_formsets_regress/tests.py7
2 files changed, 41 insertions, 1 deletions
diff --git a/tests/model_forms_regress/tests.py b/tests/model_forms_regress/tests.py
index 0e033e033f..80900a59e0 100644
--- a/tests/model_forms_regress/tests.py
+++ b/tests/model_forms_regress/tests.py
@@ -92,6 +92,41 @@ class OverrideCleanTests(TestCase):
self.assertEqual(form.instance.left, 1)
+
+class PartiallyLocalizedTripleForm(forms.ModelForm):
+ class Meta:
+ model = Triple
+ localized_fields = ('left', 'right',)
+
+
+class FullyLocalizedTripleForm(forms.ModelForm):
+ class Meta:
+ model = Triple
+ localized_fields = "__all__"
+
+class LocalizedModelFormTest(TestCase):
+ def test_model_form_applies_localize_to_some_fields(self):
+ f = PartiallyLocalizedTripleForm({'left': 10, 'middle': 10, 'right': 10})
+ self.assertTrue(f.is_valid())
+ self.assertTrue(f.fields['left'].localize)
+ self.assertFalse(f.fields['middle'].localize)
+ self.assertTrue(f.fields['right'].localize)
+
+ def test_model_form_applies_localize_to_all_fields(self):
+ f = FullyLocalizedTripleForm({'left': 10, 'middle': 10, 'right': 10})
+ self.assertTrue(f.is_valid())
+ self.assertTrue(f.fields['left'].localize)
+ self.assertTrue(f.fields['middle'].localize)
+ self.assertTrue(f.fields['right'].localize)
+
+ def test_model_form_refuses_arbitrary_string(self):
+ with self.assertRaises(TypeError):
+ class BrokenLocalizedTripleForm(forms.ModelForm):
+ class Meta:
+ model = Triple
+ localized_fields = "foo"
+
+
# Regression test for #12960.
# Make sure the cleaned_data returned from ModelForm.clean() is applied to the
# model instance.
diff --git a/tests/model_formsets_regress/tests.py b/tests/model_formsets_regress/tests.py
index 38ebd9d24b..c8fb1e76c1 100644
--- a/tests/model_formsets_regress/tests.py
+++ b/tests/model_formsets_regress/tests.py
@@ -273,6 +273,7 @@ class UserSiteForm(forms.ModelForm):
'id': CustomWidget,
'data': CustomWidget,
}
+ localized_fields = ('data',)
class Callback(object):
@@ -297,19 +298,23 @@ class FormfieldCallbackTests(TestCase):
form = Formset().forms[0]
self.assertTrue(isinstance(form['id'].field.widget, CustomWidget))
self.assertTrue(isinstance(form['data'].field.widget, CustomWidget))
+ self.assertFalse(form.fields['id'].localize)
+ self.assertTrue(form.fields['data'].localize)
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))
+ self.assertFalse(form.fields['id'].localize)
+ self.assertTrue(form.fields['data'].localize)
def assertCallbackCalled(self, callback):
id_field, user_field, data_field = UserSite._meta.fields
expected_log = [
(id_field, {'widget': CustomWidget}),
(user_field, {}),
- (data_field, {'widget': CustomWidget}),
+ (data_field, {'widget': CustomWidget, 'localize': True}),
]
self.assertEqual(callback.log, expected_log)