Exemple #1
0
    def test_should_send_reminders_to_all_data_senders(self):
        send_reminders_on(self.project,self.reminders, self.mock_date, self.sms_client,self.FROM_NUMBER,None)

        count = 0
        for reminder in [self.reminder1,self.reminder3]:
            for ds in self.data_senders:
                self.assertEqual((("from_num", ds["mobile_number"],reminder.message),{}),self.sms_client.send_sms.call_args_list[count])
                count+=1
Exemple #2
0
    def test_should_send_reminders_to_only_data_senders_who_have_not_sent_in_for_period(self):
        self.reminder1.remind_to = RemindTo.DATASENDERS_WITHOUT_SUBMISSIONS
        self.reminder3.remind_to = RemindTo.DATASENDERS_WITHOUT_SUBMISSIONS
        who_have_not_sent_data = [self.data_senders[0],self.data_senders[3]]
        self.reminder1.get_sender_list.return_value = who_have_not_sent_data
        self.reminder3.get_sender_list.return_value = who_have_not_sent_data

        send_reminders_on(self.project,self.reminders, self.mock_date, self.sms_client,self.FROM_NUMBER,None)

        count = 0
        for reminder in [self.reminder1,self.reminder3]:
            for ds in who_have_not_sent_data:
                self.assertEqual((("from_num", ds["mobile_number"],reminder.message),{}),self.sms_client.send_sms.call_args_list[count])
                count+=1
Exemple #3
0
    def test_should_return_reminders_scheduled_for_the_day(self):
        reminders_sent, total_reminders_sent = send_reminders_on(self.project,self.reminders, self.mock_date, self.sms_client,self.FROM_NUMBER,None)

        self.assertEqual(2,len(reminders_sent))
        self.assertIn(self.reminder1,reminders_sent)
        self.assertIn(self.reminder3,reminders_sent)
        self.assertEqual(8, total_reminders_sent)
Exemple #4
0
    def test_should_log_reminders_when_sent(self):
        dbm_mock = Mock(spec=DatabaseManager)
        sent_reminders, total_reminders_sent = send_reminders_on(self.project,self.reminders, self.mock_date, self.sms_client,self.FROM_NUMBER, dbm_mock)
        self.assertIn(self.reminder1, sent_reminders)
        self.reminder1.log.assert_called_once()

        self.assertIn(self.reminder3, sent_reminders)
        self.reminder3.log.assert_called_once()

        self.assertNotIn(self.reminder2, sent_reminders)
        self.assertEqual(0,self.reminder2.log.call_count)
Exemple #5
0
    def test_should_continue_with_sending_reminders_if_exception_in_prev(self):
        def expected_side_effect(*args):
            reminder_message = args[3].message
            if reminder_message == "reminder4 message":
                raise Exception()
            else:
                return 1

        self.sms_client.send_reminder = Mock()
        self.sms_client.send_reminder.side_effect = expected_side_effect

        reminders = [self.reminder1, self.reminder4, self.reminder3]
        reminders_sent, total_reminders_sent = send_reminders_on(self.project, reminders, self.mock_date, self.sms_client,self.FROM_NUMBER,None)
        self.assertEqual(2,len(reminders_sent))
        self.assertNotIn(self.reminder4,reminders_sent)
        self.assertIn(self.reminder1,reminders_sent)
        self.assertIn(self.reminder3,reminders_sent)