Opened 10 years ago
Closed 5 years ago
#24782 closed New feature (wontfix)
Add TestCase.assertFormValid
| Reported by: | Marc Tamlyn | Owned by: | David Smith |
|---|---|---|---|
| Component: | Testing framework | Version: | dev |
| Severity: | Normal | Keywords: | forms |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | yes |
| Easy pickings: | no | UI/UX: | no |
Description
In the case the form is actually valid, then assertFormValid(form) is no different to assertTrue(form.is_valid), however when the assertion fails it should print some helpful output about which fields have validation errors and what those errors are. Even just outputting errors.as_json would help a lot. I've implemented code along the lines of this many times.
Change History (13)
comment:1 by , 10 years ago
| Triage Stage: | Unreviewed → Accepted |
|---|
comment:2 by , 10 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:3 by , 10 years ago
| Has patch: | set |
|---|---|
| Needs documentation: | set |
| Needs tests: | set |
comment:4 by , 10 years ago
| Easy pickings: | unset |
|---|---|
| Needs documentation: | unset |
| Needs tests: | unset |
| Patch needs improvement: | set |
comment:5 by , 10 years ago
| Owner: | changed from to |
|---|
comment:6 by , 10 years ago
| Patch needs improvement: | unset |
|---|
I have opened a new PR: https://github.com/django/django/pull/5595
comment:8 by , 10 years ago
| Patch needs improvement: | unset |
|---|
comment:9 by , 10 years ago
| Patch needs improvement: | set |
|---|
There are comments on the new pull request for improvement.
comment:10 by , 5 years ago
| Owner: | changed from to |
|---|
comment:12 by , 5 years ago
| Patch needs improvement: | set |
|---|
comment:13 by , 5 years ago
| Resolution: | → wontfix |
|---|---|
| Status: | assigned → closed |
| Triage Stage: | Accepted → Unreviewed |
After detailed analysis provided by David we decided to close this as wontfix:
- expecting a user to pass in all the requirements to pass the
ValidationErrorequality test is too hard to be useful, - the currently proposed
codemethod isn't that robust, there may be too many caveats for it to be useful, e.g. custom user errors generated where passwords don't match are unlikely to have a code passed into theValidationError, - if it's just pass/fail that isn't much benefit from
self.assertIs(form.is_valid(), True),
In the end, this isn't worth adding extra functions.
See comment from Marc on the pull request for methods to be added.