Beispiel #1
0
    def test_deactivate_only_survey_schedules(self):
        self.assertSchedulesActive(self.domain_1_sms_schedules)
        self.assertSchedulesActive(self.domain_1_survey_schedules)
        self.assertSchedulesActive(self.domain_2_sms_schedules)
        self.assertSchedulesActive(self.domain_2_survey_schedules)

        with patch('corehq.apps.accounting.subscription_changes.refresh_timed_schedule_instances.delay') as p1,\
                patch('corehq.apps.accounting.subscription_changes.refresh_alert_schedule_instances.delay') as p2,\
                patch('corehq.messaging.tasks.initiate_messaging_rule_run') as p3:

            _deactivate_schedules(self.domain_obj_1, survey_only=True)

            b = self.domain_1_survey_schedules[0]
            p1.assert_called_once_with(b.schedule_id,
                                       b.recipients,
                                       start_date=b.start_date)

            b = self.domain_1_survey_schedules[1]
            p2.assert_called_once_with(b.schedule_id, b.recipients)

            rule = self.domain_1_survey_schedules[2]
            p3.assert_called_once_with(rule.domain, rule.pk)

        self.assertSchedulesActive(self.domain_1_sms_schedules)
        self.assertSchedulesInactive(self.domain_1_survey_schedules)
        self.assertSchedulesActive(self.domain_2_sms_schedules)
        self.assertSchedulesActive(self.domain_2_survey_schedules)
    def test_deactivate_only_survey_schedules(self):
        self.assertSchedulesActive(self.domain_1_sms_schedules)
        self.assertSchedulesActive(self.domain_1_survey_schedules)
        self.assertSchedulesActive(self.domain_2_sms_schedules)
        self.assertSchedulesActive(self.domain_2_survey_schedules)

        with patch('corehq.apps.accounting.subscription_changes.refresh_timed_schedule_instances.delay') as p1,\
                patch('corehq.apps.accounting.subscription_changes.refresh_alert_schedule_instances.delay') as p2,\
                patch('corehq.messaging.tasks.initiate_messaging_rule_run') as p3:

            _deactivate_schedules(self.domain_obj_1, survey_only=True)

            b = self.domain_1_survey_schedules[0]
            p1.assert_called_once_with(b.schedule_id, b.recipients, start_date=b.start_date)

            b = self.domain_1_survey_schedules[1]
            p2.assert_called_once_with(b.schedule_id, b.recipients)

            rule = self.domain_1_survey_schedules[2]
            p3.assert_called_once_with(rule.domain, rule.pk)

        self.assertSchedulesActive(self.domain_1_sms_schedules)
        self.assertSchedulesInactive(self.domain_1_survey_schedules)
        self.assertSchedulesActive(self.domain_2_sms_schedules)
        self.assertSchedulesActive(self.domain_2_survey_schedules)
    def test_deactivate_all_schedules(self):
        self.assertSchedulesActive(self.domain_1_sms_schedules)
        self.assertSchedulesActive(self.domain_1_survey_schedules)
        self.assertSchedulesActive(self.domain_2_sms_schedules)
        self.assertSchedulesActive(self.domain_2_survey_schedules)

        with patch('corehq.apps.accounting.subscription_changes.refresh_timed_schedule_instances.delay') as p1,\
                patch('corehq.apps.accounting.subscription_changes.refresh_alert_schedule_instances.delay') as p2,\
                patch('corehq.messaging.tasks.initiate_messaging_rule_run') as p3:

            _deactivate_schedules(self.domain_obj_1)

            self.assertEqual(p1.call_count, 2)
            p1.assert_has_calls(
                [
                    call(
                        broadcast.schedule_id.hex,
                        broadcast.recipients,
                        start_date_iso_string=json_format_date(broadcast.start_date)
                    )
                    for broadcast in (self.domain_1_sms_schedules[0], self.domain_1_survey_schedules[0])
                ],
                any_order=True
            )

            self.assertEqual(p2.call_count, 2)
            p2.assert_has_calls(
                [
                    call(broadcast.schedule_id.hex, broadcast.recipients)
                    for broadcast in (self.domain_1_sms_schedules[1], self.domain_1_survey_schedules[1])
                ],
                any_order=True
            )

            self.assertEqual(p3.call_count, 2)
            p3.assert_has_calls(
                [
                    call(rule)
                    for rule in (self.domain_1_sms_schedules[2], self.domain_1_survey_schedules[2])
                ],
                any_order=True
            )

        self.assertSchedulesInactive(self.domain_1_sms_schedules)
        self.assertSchedulesInactive(self.domain_1_survey_schedules)
        self.assertSchedulesActive(self.domain_2_sms_schedules)
        self.assertSchedulesActive(self.domain_2_survey_schedules)
    def test_deactivate_all_schedules(self):
        self.assertSchedulesActive(self.domain_1_sms_schedules)
        self.assertSchedulesActive(self.domain_1_survey_schedules)
        self.assertSchedulesActive(self.domain_2_sms_schedules)
        self.assertSchedulesActive(self.domain_2_survey_schedules)

        with patch('corehq.apps.accounting.subscription_changes.refresh_timed_schedule_instances.delay') as p1,\
                patch('corehq.apps.accounting.subscription_changes.refresh_alert_schedule_instances.delay') as p2,\
                patch('corehq.messaging.tasks.initiate_messaging_rule_run') as p3:

            _deactivate_schedules(self.domain_obj_1)

            self.assertEqual(p1.call_count, 2)
            p1.assert_has_calls(
                [
                    call(broadcast.schedule_id, broadcast.recipients, start_date=broadcast.start_date)
                    for broadcast in (self.domain_1_sms_schedules[0], self.domain_1_survey_schedules[0])
                ],
                any_order=True
            )

            self.assertEqual(p2.call_count, 2)
            p2.assert_has_calls(
                [
                    call(broadcast.schedule_id, broadcast.recipients)
                    for broadcast in (self.domain_1_sms_schedules[1], self.domain_1_survey_schedules[1])
                ],
                any_order=True
            )

            self.assertEqual(p3.call_count, 2)
            p3.assert_has_calls(
                [
                    call(rule.domain, rule.pk)
                    for rule in (self.domain_1_sms_schedules[2], self.domain_1_survey_schedules[2])
                ],
                any_order=True
            )

        self.assertSchedulesInactive(self.domain_1_sms_schedules)
        self.assertSchedulesInactive(self.domain_1_survey_schedules)
        self.assertSchedulesActive(self.domain_2_sms_schedules)
        self.assertSchedulesActive(self.domain_2_survey_schedules)