Opened 4 days ago
Last modified 2 days ago
#36280 assigned Cleanup/optimization
Replace cm.exception.messages with assertRaisesMessage() in tests
Description (last modified by ) ¶
I haven't audited each instance, but most likely many of the uses of cm.exception.messages
could be made more consistent with the rest of the Django test suite by instead using self.assertRaisesMessage()
.
tests/composite_pk/test_models.py: self.assertSequenceEqual(ctx.exception.messages, messages) tests/composite_pk/test_models.py: ctx.exception.messages, ("User with this Email already exists.",) tests/validation/test_error_messages.py: self.assertEqual(cm.exception.messages, expected) tests/auth_tests/test_validators.py: self.assertEqual(cm.exception.messages, [msg_too_short]) tests/auth_tests/test_validators.py: cm.exception.messages, ["This password is too common.", msg_too_short] tests/auth_tests/test_validators.py: self.assertEqual(cm.exception.messages, [expected_error % 8]) tests/auth_tests/test_validators.py: self.assertEqual(cm.exception.messages, [expected_error % 3]) tests/auth_tests/test_validators.py: self.assertEqual(cm.exception.messages, [expected_error % "username"]) tests/auth_tests/test_validators.py: self.assertEqual(cm.exception.messages, [expected_error % "email address"]) tests/auth_tests/test_validators.py: self.assertEqual(cm.exception.messages, [expected_error % "first name"]) tests/auth_tests/test_validators.py: self.assertEqual(cm.exception.messages, [expected_error % "first name"]) tests/auth_tests/test_validators.py: cm.exception.messages, ["The password is too similar to the username."] tests/auth_tests/test_validators.py: self.assertEqual(cm.exception.messages, [expected_error]) tests/auth_tests/test_validators.py: self.assertEqual(cm.exception.messages, [expected_error]) tests/auth_tests/test_validators.py: self.assertEqual(cm.exception.messages, [expected_error]) tests/auth_tests/test_validators.py: self.assertEqual(cm.exception.messages, [expected_error]) tests/forms_tests/tests/test_error_messages.py: self.assertEqual(cm.exception.messages, expected) tests/forms_tests/tests/test_validators.py: self.assertEqual(2, len(e.exception.messages)) tests/test_exceptions/test_validation_error.py: self.assertEqual(sorted(exception.messages), []) tests/test_exceptions/test_validation_error.py: self.assertEqual(sorted(exception.messages), ["E1", "E2"]) tests/test_exceptions/test_validation_error.py: self.assertEqual(sorted(exception.messages), ["E1", "E2", "E3", "E4"]) tests/postgres_tests/test_array.py: cm.exception.messages[0], tests/postgres_tests/test_array.py: cm.exception.messages[0], "Nested arrays must have the same length." tests/postgres_tests/test_array.py: cm.exception.messages[0], tests/postgres_tests/test_array.py: cm.exception.messages[0], tests/postgres_tests/test_array.py: cm.exception.messages[0], tests/postgres_tests/test_array.py: cm.exception.messages[0], tests/postgres_tests/test_array.py: cm.exception.messages[0], tests/postgres_tests/test_array.py: self.assertEqual(cm.exception.messages[0], "This field is required.") tests/postgres_tests/test_array.py: cm.exception.messages, tests/postgres_tests/test_array.py: cm.exception.messages, tests/postgres_tests/test_hstore.py: self.assertEqual(cm.exception.messages[0], "Could not load JSON data.") tests/postgres_tests/test_hstore.py: self.assertEqual(cm.exception.messages[0], "Some keys were missing: b") tests/postgres_tests/test_hstore.py: self.assertEqual(cm.exception.messages[0], "Some unknown keys were provided: c") tests/postgres_tests/test_hstore.py: self.assertEqual(cm.exception.messages[0], "Foobar") tests/postgres_tests/test_hstore.py: self.assertEqual(cm.exception.messages[0], "Some unknown keys were provided: c") tests/postgres_tests/test_ranges.py: self.assertEqual(cm.exception.messages[0], msg) tests/postgres_tests/test_ranges.py: self.assertEqual(cm.exception.messages[0], msg) tests/postgres_tests/test_ranges.py: cm.exception.messages[0], tests/postgres_tests/test_ranges.py: self.assertEqual(cm.exception.messages[0], "Enter two whole numbers.") tests/postgres_tests/test_ranges.py: self.assertEqual(cm.exception.messages[0], "Enter a whole number.") tests/postgres_tests/test_ranges.py: self.assertEqual(cm.exception.messages[0], "Enter a whole number.") tests/postgres_tests/test_ranges.py: self.assertEqual(cm.exception.messages[0], "This field is required.") tests/postgres_tests/test_ranges.py: cm.exception.messages[0], tests/postgres_tests/test_ranges.py: self.assertEqual(cm.exception.messages[0], "Enter two numbers.") tests/postgres_tests/test_ranges.py: self.assertEqual(cm.exception.messages[0], "Enter a number.") tests/postgres_tests/test_ranges.py: self.assertEqual(cm.exception.messages[0], "Enter a number.") tests/postgres_tests/test_ranges.py: self.assertEqual(cm.exception.messages[0], "This field is required.") tests/postgres_tests/test_ranges.py: cm.exception.messages[0], tests/postgres_tests/test_ranges.py: self.assertEqual(cm.exception.messages[0], "Enter two valid dates.") tests/postgres_tests/test_ranges.py: self.assertEqual(cm.exception.messages[0], "Enter a valid date.") tests/postgres_tests/test_ranges.py: self.assertEqual(cm.exception.messages[0], "Enter a valid date.") tests/postgres_tests/test_ranges.py: self.assertEqual(cm.exception.messages[0], "This field is required.") tests/postgres_tests/test_ranges.py: cm.exception.messages[0], tests/postgres_tests/test_ranges.py: self.assertEqual(cm.exception.messages[0], "Enter two valid date/times.") tests/postgres_tests/test_ranges.py: self.assertEqual(cm.exception.messages[0], "Enter a valid date/time.") tests/postgres_tests/test_ranges.py: self.assertEqual(cm.exception.messages[0], "Enter a valid date/time.") tests/postgres_tests/test_ranges.py: self.assertEqual(cm.exception.messages[0], "This field is required.")
According to the ticket's flags, the next step(s) to move this issue forward are:
- To improve the patch as described in the pull request review comments or on this ticket, then uncheck "Patch needs improvement".
If creating a new pull request, include a link to the pull request in the ticket comment when making that update. The usual format is:
[https://github.com/django/django/pull/#### PR]
.
Change History (4)
follow-up: 2 comment:1 by , 3 days ago
Triage Stage: | Unreviewed → Accepted |
---|
comment:2 by , 2 days ago
Replying to Sarah Boyce:
Agree that most can be updated
Likely that the ones that check the error code (cm.exception.code
) may need to stay the same
I assume the same goes for assertEqual's that validate two lists of errors? Since, assertRaisesMessage validates against a string, not a list of them. Otherwise, we would need to write a new assert for that specifically.
comment:3 by , 2 days ago
Owner: | set to |
---|---|
Status: | new → assigned |
comment:4 by , 2 days ago
Description: | modified (diff) |
---|---|
Has patch: | set |
Patch needs improvement: | set |
Agree that most can be updated
Likely that the ones that check the error code (
cm.exception.code
) may need to stay the same