diff options
Diffstat (limited to 'tests/model_formsets')
| -rw-r--r-- | tests/model_formsets/tests.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/model_formsets/tests.py b/tests/model_formsets/tests.py index b5e410738e..ed74dff2ed 100644 --- a/tests/model_formsets/tests.py +++ b/tests/model_formsets/tests.py @@ -376,6 +376,33 @@ class ModelFormsetTest(TestCase): '<Author: Walt Whitman>', ]) + def test_min_num(self): + # Test the behavior of min_num with model formsets. It should be + # added to extra. + qs = Author.objects.none() + + AuthorFormSet = modelformset_factory(Author, fields="__all__", extra=0) + formset = AuthorFormSet(queryset=qs) + self.assertEqual(len(formset.forms), 0) + + AuthorFormSet = modelformset_factory(Author, fields="__all__", min_num=1, extra=0) + formset = AuthorFormSet(queryset=qs) + self.assertEqual(len(formset.forms), 1) + + AuthorFormSet = modelformset_factory(Author, fields="__all__", min_num=1, extra=1) + formset = AuthorFormSet(queryset=qs) + self.assertEqual(len(formset.forms), 2) + + def test_min_num_with_existing(self): + # Test the behavior of min_num with existing objects. + # See #22628 - this will change when that's fixed. + Author.objects.create(name='Charles Baudelaire') + qs = Author.objects.all() + + AuthorFormSet = modelformset_factory(Author, fields="__all__", extra=0, min_num=1) + formset = AuthorFormSet(queryset=qs) + self.assertEqual(len(formset.forms), 2) + def test_custom_save_method(self): class PoetForm(forms.ModelForm): def save(self, commit=True): |
