summaryrefslogtreecommitdiff
path: root/tests/model_formsets
diff options
context:
space:
mode:
Diffstat (limited to 'tests/model_formsets')
-rw-r--r--tests/model_formsets/tests.py27
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):