summaryrefslogtreecommitdiff
path: root/tests/model_formsets
diff options
context:
space:
mode:
authorAnders Steinlein <anders@e5r.no>2014-03-05 21:19:40 +0100
committerTim Graham <timograham@gmail.com>2014-05-15 07:25:35 -0400
commit4ef10f245ada0c7d5ae8dc31eebffa63790d40fb (patch)
treedffd7ca06862fa20b5fa0b4528ac8beeecaee9fa /tests/model_formsets
parent860d31ac7a3bdd4b27db8b34b110b3d801ddaf8a (diff)
downloaddjango-4ef10f245ada0c7d5ae8dc31eebffa63790d40fb.tar.gz
Fixed #17642 -- Added min_num support to modelformsets, inlines, and the admin.
Thanks Stephen Burrows for work on the patch as well. Forwardport of 2914f66983a92fcae55673c517dd8d01e8c238c4 from stable/1.7.x
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):