fix(campaign): mark excluded delivery as skipped
This commit is contained in:
@@ -40,6 +40,7 @@ class CampaignJobListQueryTests(unittest.TestCase):
|
||||
(3, "ordinary-3@example.test", "General notice", "blocked", "draft", "failed_permanent", "failed", 3),
|
||||
(4, "target-b@example.test", "Target notice B", "ready", "draft", "failed_temporary", "not_requested", 4),
|
||||
(5, "target-a@example.test", "Target notice A", "ready", "draft", "outcome_unknown", "outcome_unknown", 5),
|
||||
(6, "excluded@example.test", "Excluded notice", "excluded", "draft", "skipped", "skipped", 0),
|
||||
]
|
||||
for entry_index, recipient, subject, validation, queue, send, imap, attempts in rows:
|
||||
self.session.add(CampaignJob(
|
||||
@@ -89,7 +90,7 @@ class CampaignJobListQueryTests(unittest.TestCase):
|
||||
)
|
||||
|
||||
self.assertEqual(page.total, 3)
|
||||
self.assertEqual(page.total_unfiltered, 6)
|
||||
self.assertEqual(page.total_unfiltered, 7)
|
||||
self.assertEqual(page.pages, 2)
|
||||
self.assertEqual(
|
||||
[row["recipient_email"] for row in page.jobs],
|
||||
@@ -118,6 +119,31 @@ class CampaignJobListQueryTests(unittest.TestCase):
|
||||
|
||||
self.assertEqual(raised.exception.status_code, 422)
|
||||
|
||||
def test_skipped_transport_filters_and_counts_remain_separate(self) -> None:
|
||||
base_filters = [CampaignJob.tenant_id == "tenant-1", CampaignJob.campaign_id == "campaign-1"]
|
||||
grid_filters = {"send": 'list:["skipped"]', "imap": 'list:["skipped"]'}
|
||||
filtered = [*base_filters, *_campaign_jobs_grid_filter_expressions(grid_filters)]
|
||||
|
||||
page = _campaign_jobs_page_response(
|
||||
self.session,
|
||||
campaign_id="campaign-1",
|
||||
version_id="version-1",
|
||||
base_filters=base_filters,
|
||||
filtered=filtered,
|
||||
reviewed_keys=set(),
|
||||
review_metadata={},
|
||||
page=1,
|
||||
page_size=20,
|
||||
grid_filters=grid_filters,
|
||||
)
|
||||
|
||||
self.assertEqual([row["id"] for row in page.jobs], ["job-6"])
|
||||
self.assertEqual(page.counts["send"]["skipped"], 1)
|
||||
self.assertEqual(page.counts["send"]["not_queued"], 2)
|
||||
self.assertEqual(page.counts["imap"]["skipped"], 1)
|
||||
self.assertEqual(page.filtered_counts["send"], {"skipped": 1})
|
||||
self.assertEqual(page.filtered_counts["imap"], {"skipped": 1})
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user