Internal: validate AnymailRecipientStatus at init

Catch invalid message_id and status when initializing
AnymailRecipientStatus, so problems with ESP response
are caught earlier (in individual backend
parse_recipient_status, rather than base backend _send).
This commit is contained in:
medmunds
2021-01-25 10:45:39 -08:00
committed by Mike Edmunds
parent 3e0056fa2f
commit fb5912f0e7
3 changed files with 18 additions and 0 deletions

View File

@@ -76,3 +76,11 @@ class AnymailStatusTests(AnymailTestMixin, SimpleTestCase):
self.assertIsNone(status.status)
self.assertIsNone(status.message_id)
self.assertEqual(repr(status), "AnymailStatus<status=None>")
def test_invalid_message_id(self):
with self.assertRaisesMessage(TypeError, "Invalid message_id"):
AnymailRecipientStatus(["id-list", "is-not-valid"], "queued")
def test_invalid_status(self):
with self.assertRaisesMessage(ValueError, "Invalid status"):
AnymailRecipientStatus("12345", "not-a-known-status")