fix(campaign): mark excluded delivery as skipped
This commit is contained in:
@@ -53,6 +53,13 @@ class CampaignQueueControlTests(unittest.TestCase):
|
||||
self._add_job("unknown", queue="draft", send="outcome_unknown")
|
||||
self._add_job("accepted", queue="draft", send="smtp_accepted")
|
||||
self._add_job("claimed", queue="sending", send="claimed")
|
||||
self._add_job(
|
||||
"excluded",
|
||||
queue="draft",
|
||||
send="skipped",
|
||||
validation="excluded",
|
||||
imap="skipped",
|
||||
)
|
||||
self._add_job(
|
||||
"other-tenant",
|
||||
tenant_id="tenant-2",
|
||||
@@ -111,8 +118,10 @@ class CampaignQueueControlTests(unittest.TestCase):
|
||||
|
||||
self.assertEqual(first["cancelled_count"], 3)
|
||||
self.assertEqual(first["protected_count"], 3)
|
||||
self.assertEqual(first["skipped_count"], 1)
|
||||
self.assertEqual(second["cancelled_count"], 0)
|
||||
self.assertEqual(second["protected_count"], 3)
|
||||
self.assertEqual(second["skipped_count"], 1)
|
||||
self.session.expire_all()
|
||||
for job_id in ("queued", "paused", "failed"):
|
||||
job = self.session.get(CampaignJob, job_id)
|
||||
@@ -121,6 +130,8 @@ class CampaignQueueControlTests(unittest.TestCase):
|
||||
self.assertEqual(self.session.get(CampaignJob, "unknown").send_status, JobSendStatus.OUTCOME_UNKNOWN.value)
|
||||
self.assertEqual(self.session.get(CampaignJob, "accepted").send_status, JobSendStatus.SMTP_ACCEPTED.value)
|
||||
self.assertEqual(self.session.get(CampaignJob, "claimed").send_status, JobSendStatus.CLAIMED.value)
|
||||
self.assertEqual(self.session.get(CampaignJob, "excluded").send_status, JobSendStatus.SKIPPED.value)
|
||||
self.assertEqual(self.session.get(CampaignJob, "excluded").queue_status, JobQueueStatus.DRAFT.value)
|
||||
self.assertEqual(self.session.get(CampaignJob, "other-tenant").send_status, JobSendStatus.QUEUED.value)
|
||||
|
||||
def test_controls_fail_closed_for_a_campaign_owned_by_another_tenant(self) -> None:
|
||||
@@ -148,6 +159,8 @@ class CampaignQueueControlTests(unittest.TestCase):
|
||||
self.assertEqual(cards["retryable"], 1)
|
||||
self.assertEqual(cards["queueable_unattempted"], 0)
|
||||
self.assertEqual(cards["cancellable"], 3)
|
||||
self.assertEqual(cards["skipped"], 1)
|
||||
self.assertEqual(cards["imap_skipped"], 1)
|
||||
self.assertEqual(projected_version["delivery_mode"], "worker_queue")
|
||||
self.assertIn("delivery_mode_selected_at", projected_version)
|
||||
self.assertNotIn("execution_snapshot", projected_version)
|
||||
@@ -179,6 +192,8 @@ class CampaignQueueControlTests(unittest.TestCase):
|
||||
tenant_id: str = "tenant-1",
|
||||
campaign_id: str = "campaign-1",
|
||||
version_id: str = "version-1",
|
||||
validation: str = JobValidationStatus.READY.value,
|
||||
imap: str = "not_requested",
|
||||
) -> None:
|
||||
self.session.add(CampaignJob(
|
||||
id=job_id,
|
||||
@@ -188,9 +203,10 @@ class CampaignQueueControlTests(unittest.TestCase):
|
||||
entry_index=len(self.session.new),
|
||||
entry_id=f"entry-{job_id}",
|
||||
build_status=JobBuildStatus.BUILT.value,
|
||||
validation_status=JobValidationStatus.READY.value,
|
||||
validation_status=validation,
|
||||
queue_status=queue,
|
||||
send_status=send,
|
||||
imap_status=imap,
|
||||
resolved_attachments=[],
|
||||
issues_snapshot=[],
|
||||
))
|
||||
|
||||
Reference in New Issue
Block a user