summaryrefslogtreecommitdiff
path: root/tests/generic_relations
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2020-08-17 13:27:08 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-08-18 09:37:15 +0200
commit3254991762b49cfbeb8434842c19bbbad87cd9c6 (patch)
tree7b3665326a1e8375fb72870654e71107d84d56ea /tests/generic_relations
parent13704b057d3c77d9442a150f79d8fad34bcdb995 (diff)
downloaddjango-3254991762b49cfbeb8434842c19bbbad87cd9c6.tar.gz
Refs #20347 -- Allowed customizing the maximum number of instantiated forms in generic_inlineformset_factory().
Follow up to 433dd737f94b09043f64b873b0ac067b3f97364b.
Diffstat (limited to 'tests/generic_relations')
-rw-r--r--tests/generic_relations/test_forms.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/generic_relations/test_forms.py b/tests/generic_relations/test_forms.py
index 4b94f24531..1a05681711 100644
--- a/tests/generic_relations/test_forms.py
+++ b/tests/generic_relations/test_forms.py
@@ -237,3 +237,37 @@ id="id_generic_relations-taggeditem-content_type-object_id-1-id"></p>""" % tagge
self.assertEqual([tag.tag for tag in tags], ['hunts', 'roars'])
hunts, roars = tags
self.assertSequenceEqual(lion.tags.order_by('tag'), [hairy, hunts, roars, yellow])
+
+ def test_absolute_max(self):
+ GenericFormSet = generic_inlineformset_factory(TaggedItem, absolute_max=1500)
+ data = {
+ 'form-TOTAL_FORMS': '1501',
+ 'form-INITIAL_FORMS': '0',
+ 'form-MAX_NUM_FORMS': '0',
+ }
+ formset = GenericFormSet(data=data, prefix='form')
+ self.assertIs(formset.is_valid(), False)
+ self.assertEqual(len(formset.forms), 1500)
+ self.assertEqual(
+ formset.non_form_errors(),
+ ['Please submit 1000 or fewer forms.'],
+ )
+
+ def test_absolute_max_with_max_num(self):
+ GenericFormSet = generic_inlineformset_factory(
+ TaggedItem,
+ max_num=20,
+ absolute_max=100,
+ )
+ data = {
+ 'form-TOTAL_FORMS': '101',
+ 'form-INITIAL_FORMS': '0',
+ 'form-MAX_NUM_FORMS': '0',
+ }
+ formset = GenericFormSet(data=data, prefix='form')
+ self.assertIs(formset.is_valid(), False)
+ self.assertEqual(len(formset.forms), 100)
+ self.assertEqual(
+ formset.non_form_errors(),
+ ['Please submit 20 or fewer forms.'],
+ )