@@ -96,7 +96,9 @@ def test_participants_with_inactive_account(self):
9696 last_activity = self ._dt (self .today - timedelta (days = 1 ))
9797 )
9898
99- recipients = program_participants_with_inactive_account (program .id )
99+ recipients = program_participants_with_inactive_account (
100+ program .id , program .datetime_started
101+ )
100102 recipient_ids = set (recipients .values_list ("id" , flat = True ))
101103
102104 self .assertIn (inactive_no_activity .id , recipient_ids )
@@ -114,7 +116,7 @@ def test_participants_with_inactive_account_registered_on_date(self):
114116 self ._register_user (registered_other_day , program , self .today - timedelta (days = 2 ))
115117
116118 recipients = program_participants_with_inactive_account_registered_on (
117- program .id , target_date
119+ program .id , target_date , program . datetime_started
118120 )
119121 recipient_ids = set (recipients .values_list ("id" , flat = True ))
120122
@@ -152,8 +154,11 @@ def _register_user(self, user: CustomUser, program: PartnerProgram, registered_o
152154 datetime_created = self ._dt (registered_on )
153155 )
154156
155- @patch ("mailing.tasks.send_mass_mail_from_template" , _fake_send_mass_mail_from_template )
156- def test_registration_plus_3_inactive_account_scenario (self ):
157+ @patch (
158+ "mailing.tasks.send_mass_mail_from_template" ,
159+ side_effect = _fake_send_mass_mail_from_template ,
160+ )
161+ def test_registration_plus_3_inactive_account_scenario (self , send_mail_mock ):
157162 target_registration_date = self .today - timedelta (days = 3 )
158163
159164 program = PartnerProgram .objects .create (
@@ -192,9 +197,28 @@ def test_registration_plus_3_inactive_account_scenario(self):
192197 )
193198 self .assertEqual (sent_logs .count (), 1 )
194199 self .assertEqual (sent_logs .first ().user_id , inactive_user .id )
200+ self .assertEqual (send_mail_mock .call_count , 1 )
201+
202+ second_run_sent_count = run_program_mailings ()
203+ self .assertEqual (second_run_sent_count , 0 )
204+ self .assertEqual (send_mail_mock .call_count , 1 )
205+
206+ all_logs = MailingScenarioLog .objects .filter (
207+ scenario_code = "program_registration_plus_3_inactive_account" ,
208+ program = program ,
209+ scheduled_for = self .today ,
210+ )
211+ self .assertEqual (all_logs .count (), 1 )
212+ self .assertEqual (
213+ all_logs .first ().status ,
214+ MailingScenarioLog .Status .SENT ,
215+ )
195216
196- @patch ("mailing.tasks.send_mass_mail_from_template" , _fake_send_mass_mail_from_template )
197- def test_registration_end_plus_3_inactive_account_scenario (self ):
217+ @patch (
218+ "mailing.tasks.send_mass_mail_from_template" ,
219+ side_effect = _fake_send_mass_mail_from_template ,
220+ )
221+ def test_registration_end_plus_3_inactive_account_scenario (self , send_mail_mock ):
198222 target_registration_end_date = self .today - timedelta (days = 3 )
199223
200224 program = PartnerProgram .objects .create (
@@ -227,3 +251,19 @@ def test_registration_end_plus_3_inactive_account_scenario(self):
227251 )
228252 self .assertEqual (sent_logs .count (), 1 )
229253 self .assertEqual (sent_logs .first ().user_id , inactive_user .id )
254+ self .assertEqual (send_mail_mock .call_count , 1 )
255+
256+ second_run_sent_count = run_program_mailings ()
257+ self .assertEqual (second_run_sent_count , 0 )
258+ self .assertEqual (send_mail_mock .call_count , 1 )
259+
260+ all_logs = MailingScenarioLog .objects .filter (
261+ scenario_code = "program_registration_end_plus_3_inactive_account" ,
262+ program = program ,
263+ scheduled_for = self .today ,
264+ )
265+ self .assertEqual (all_logs .count (), 1 )
266+ self .assertEqual (
267+ all_logs .first ().status ,
268+ MailingScenarioLog .Status .SENT ,
269+ )
0 commit comments