summaryrefslogtreecommitdiff
path: root/django/test
diff options
context:
space:
mode:
authorBaptiste Mispelon <bmispelon@gmail.com>2022-02-14 12:27:26 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-02-14 12:46:46 +0100
commit9bb13def5d416ff3d5d1928a2def5babac0e19f6 (patch)
tree62e69d4a28e054f4fd0089ff01d8eeace64d2402 /django/test
parent261885e4c16a252999ac6ff7d911b7dc50f862f9 (diff)
Refs #33348 -- Made SimpleTestCase.assertFormsetErrors() raise an error when form_index is too big.
Diffstat (limited to 'django/test')
-rw-r--r--django/test/testcases.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/django/test/testcases.py b/django/test/testcases.py
index 0d24bf0d40..a29b77c277 100644
--- a/django/test/testcases.py
+++ b/django/test/testcases.py
@@ -686,13 +686,21 @@ class SimpleTestCase(unittest.TestCase):
for i, context in enumerate(contexts):
if formset not in context or not hasattr(context[formset], "forms"):
continue
+ formset_repr = repr(context[formset])
if not context[formset].is_bound:
- formset_repr = repr(context[formset])
self.fail(
f"{msg_prefix}The formset {formset_repr} is not bound, it will "
f"never have any errors."
)
found_formset = True
+ if form_index is not None:
+ form_count = context[formset].total_form_count()
+ if form_index >= form_count:
+ form_or_forms = "forms" if form_count > 1 else "form"
+ self.fail(
+ f"{msg_prefix}The formset {formset_repr} only has "
+ f"{form_count} {form_or_forms}."
+ )
for err in errors:
if field is not None:
if field in context[formset].forms[form_index].errors: