def test_storage_clear_for_current_user(self):
        self.login(self.regular_user)
        self.storage.set(ReminderSameDay())
        self.storage.set(ReminderOneWeekBefore(),
                         user_id=self.dossier_responsible.id)
        self.storage.clear()

        self.assertEqual(
            {self.dossier_responsible.id: ReminderOneWeekBefore()},
            self.storage.list())
Beispiel #2
0
    def test_reminders_can_be_serialized(self):
        self.assertEqual(
            {'option_type': 'same_day',
             'option_title': 'At the morging of the deadline',
             'params': {}},
            ReminderSameDay().serialize())

        self.assertEqual(
            {'option_type': 'one_day_before',
             'option_title': 'One day before deadline',
             'params': {}},
            ReminderOneDayBefore().serialize())

        self.assertEqual(
            {'option_type': 'one_week_before',
             'option_title': 'One week before deadline',
             'params': {}},
            ReminderOneWeekBefore().serialize())

        self.assertEqual(
            {'option_type': 'beginning_of_week',
             'option_title': 'At the beginning of the week of the deadline',
             'params': {}},
            ReminderBeginningOfWeek().serialize())

        self.assertEqual(
            {'option_type': 'on_date',
             'option_title': 'On a specific date',
             'params': {'date': date(2018, 12, 30)}},
            ReminderOnDate({'date': date(2018, 12, 30)}).serialize())
Beispiel #3
0
    def test_calculate_trigger_date(self):
        deadline = date(2018, 7, 1)  # 01. July 2018, Sunday
        self.assertEqual(
            date(2018, 7, 1),  # Sunday
            ReminderSameDay().calculate_trigger_date(deadline))

        self.assertEqual(
            date(2018, 6, 30),  # Saturday
            ReminderOneDayBefore().calculate_trigger_date(deadline))

        self.assertEqual(
            date(2018, 6, 24),  # Sunday
            ReminderOneWeekBefore().calculate_trigger_date(deadline))

        self.assertEqual(
            date(2018, 6, 25),  # Monday
            ReminderBeginningOfWeek().calculate_trigger_date(deadline))

        deadline = date(2018, 7, 2)  # 02. July 2018, Monday
        self.assertEqual(
            date(2018, 7, 2),  # Monday
            ReminderBeginningOfWeek().calculate_trigger_date(deadline))

        self.assertEqual(
            date(2018, 12, 30),
            ReminderOnDate(
                {'date': date(2018, 12, 30)}
            ).calculate_trigger_date(deadline))
    def test_gets_removed_when_syncing_a_task(self):
        self.login(self.dossier_responsible)
        self.task.set_reminder(ReminderOneWeekBefore())
        self.task.sync()

        self.assertEquals(1, ReminderSetting.query.count())

        self.task.clear_reminder(user_id=self.dossier_responsible.id)
        self.task.sync()

        self.assertEquals(0, ReminderSetting.query.count())
    def test_gets_added_when_syncing_a_task(self):
        self.login(self.dossier_responsible)
        self.task.set_reminder(ReminderOneWeekBefore())
        self.task.sync()

        self.assertEquals(1, ReminderSetting.query.count())
        setting = ReminderSetting.query.first()
        self.assertEquals(self.dossier_responsible.id, setting.actor_id)
        self.assertEquals(ReminderOneWeekBefore.option_type,
                          setting.option_type)
        self.assertEquals(date(2016, 10, 25), setting.remind_day)
Beispiel #6
0
    def test_serialization_deserialization_rountrip(self):
        self.assertEqual(
            ReminderSameDay(),
            Reminder.deserialize(ReminderSameDay().serialize()))

        self.assertEqual(
            ReminderOneDayBefore(),
            Reminder.deserialize(ReminderOneDayBefore().serialize()))

        self.assertEqual(
            ReminderOneWeekBefore(),
            Reminder.deserialize(ReminderOneWeekBefore().serialize()))

        self.assertEqual(
            ReminderBeginningOfWeek(),
            Reminder.deserialize(ReminderBeginningOfWeek().serialize()))

        self.assertEqual(
            ReminderOnDate({'date': date(2018, 12, 30)}),
            Reminder.deserialize(
                ReminderOnDate({'date': date(2018, 12, 30)}).serialize()))
    def test_gets_updated_when_syncing_a_task(self):
        self.login(self.dossier_responsible)

        self.task.set_reminder(ReminderOneWeekBefore())
        self.task.sync()

        ReminderSetting.query.all()

        self.task.deadline = date(2018, 9, 28)
        self.task.sync()

        self.assertEquals(1, ReminderSetting.query.count())
        setting = ReminderSetting.query.first()
        self.assertEquals(date(2018, 9, 21), setting.remind_day)
Beispiel #8
0
    def test_patch_updates_set_reminder(self, browser):
        self.login(self.regular_user, browser)
        self.task.set_reminder(ReminderOneDayBefore())

        payload = {'option_type': ReminderOneWeekBefore.option_type}

        browser.open(
            self.task.absolute_url() + '/@reminder',
            data=json.dumps(payload),
            method='PATCH',
            headers=self.http_headers,
        )

        self.assertEqual(204, browser.status_code)
        self.assertEqual(
            ReminderOneWeekBefore(),
            self.task.get_reminder())
Beispiel #9
0
    def test_reminders_can_be_created_via_factory_method(self):
        self.assertEqual(
            ReminderSameDay(),
            Reminder.create('same_day'))

        self.assertEqual(
            ReminderOneDayBefore(),
            Reminder.create('one_day_before'))

        self.assertEqual(
            ReminderOneWeekBefore(),
            Reminder.create('one_week_before'))

        self.assertEqual(
            ReminderBeginningOfWeek(),
            Reminder.create('beginning_of_week'))

        self.assertEqual(
            ReminderOnDate({'date': date(2018, 12, 30)}),
            Reminder.create('on_date', {'date': date(2018, 12, 30)}))
Beispiel #10
0
    def test_reminders_can_be_deserialized_from_data(self):
        self.assertEqual(
            ReminderSameDay(),
            Reminder.deserialize({'option_type': 'same_day'}))

        self.assertEqual(
            ReminderOneDayBefore(),
            Reminder.deserialize({'option_type': 'one_day_before'}))

        self.assertEqual(
            ReminderOneWeekBefore(),
            Reminder.deserialize({'option_type': 'one_week_before'}))

        self.assertEqual(
            ReminderBeginningOfWeek(),
            Reminder.deserialize({'option_type': 'beginning_of_week'}))

        self.assertEqual(
            ReminderOnDate({'date': date(2018, 12, 30)}),
            Reminder.deserialize({'option_type': 'on_date',
                                  'params': {'date': date(2018, 12, 30)}}))
    def test_set_reminder_updates_existing_reminder(self):
        self.login(self.regular_user)
        self.task.set_reminder(ReminderOneDayBefore())
        self.task.set_reminder(ReminderOneWeekBefore())

        self.assertEqual(ReminderOneWeekBefore(), self.task.get_reminder())