(
self, form, field, errors, msg_prefix, formset=None, form_index=None
)
| 663 | return f"form {form_index} of formset {formset!r}" |
| 664 | |
| 665 | def _assert_form_error( |
| 666 | self, form, field, errors, msg_prefix, formset=None, form_index=None |
| 667 | ): |
| 668 | if not form.is_bound: |
| 669 | self.fail( |
| 670 | "%sThe %s is not bound, it will never have any errors." |
| 671 | % (msg_prefix, self._form_repr(form, formset, form_index)) |
| 672 | ) |
| 673 | |
| 674 | if field is not None and field not in form.fields: |
| 675 | self.fail( |
| 676 | "%sThe %s does not contain the field %r." |
| 677 | % (msg_prefix, self._form_repr(form, formset, form_index), field) |
| 678 | ) |
| 679 | field_errors = ( |
| 680 | form.non_field_errors() if field is None else form.errors.get(field, []) |
| 681 | ) |
| 682 | |
| 683 | if field_errors == errors: |
| 684 | return |
| 685 | |
| 686 | # Use assertEqual to show detailed diff if errors don't match. |
| 687 | if field is None: |
| 688 | failure_message = "The non-field errors of %s don't match." % ( |
| 689 | self._form_repr(form, formset, form_index), |
| 690 | ) |
| 691 | else: |
| 692 | failure_message = "The errors of field %r on %s don't match." % ( |
| 693 | field, |
| 694 | self._form_repr(form, formset, form_index), |
| 695 | ) |
| 696 | self.assertEqual(field_errors, errors, msg_prefix + failure_message) |
| 697 | |
| 698 | def assertFormError(self, form, field, errors, msg_prefix=""): |
| 699 | """ |
no test coverage detected