Opened 9 months ago
Last modified 13 days ago
#36280 closed Cleanup/optimization
Replace cm.exception.messages with assertRaisesMessage() in tests — at Version 4
| Reported by: | Tim Graham | Owned by: | Georgii (George) Randiuk |
|---|---|---|---|
| Component: | Core (Other) | Version: | dev |
| Severity: | Normal | Keywords: | |
| Cc: | David Bogar | Triage Stage: | Ready for checkin |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | yes | UI/UX: | no |
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.")
Change History (4)
follow-up: 2 comment:1 by , 9 months ago
| Triage Stage: | Unreviewed → Accepted |
|---|
comment:2 by , 9 months 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 , 9 months ago
| Owner: | set to |
|---|---|
| Status: | new → assigned |
comment:4 by , 9 months 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