def test_scheduled_for_reminder_weekends(self): h = Habit(user=self.user, start=datetime.date(2013, 3, 4), description='Do a thing. On a day.') h.set_reminder_schedule(SCHEDULE_WEEKENDS, 0) h.save() self.assertEquals(len(self._scheduled(calendar.MONDAY, 0)), 0) self.assertEquals(len(self._scheduled(calendar.SATURDAY, 6)), 0) self.assertEquals(len(self._scheduled(calendar.SATURDAY, 0)), 1) self.assertEquals(self._scheduled(calendar.SATURDAY, 0)[0], h)
def test_scheduled_for_reminder_mondays(self): h = Habit(user=self.user, start=datetime.date(2013, 3, 4), description='Do a thing. On a day.') h.set_reminder_schedule(SCHEDULE_MONDAYS, 12) h.save() self.assertEquals(len(self._scheduled(calendar.MONDAY, 12)), 1) self.assertEquals(self._scheduled(calendar.MONDAY, 12)[0], h) self.assertEquals(len(self._scheduled(calendar.MONDAY, 6)), 0) self.assertEquals(len(self._scheduled(calendar.TUESDAY, 12)), 0)
def test_scheduled_for_reminder_multiple_habits(self): h1 = Habit(user=self.user, start=datetime.date(2013, 3, 4), description='Habit 1') h1.set_reminder_schedule(SCHEDULE_MONDAYS, 16) h1.save() h2 = Habit(user=self.user, start=datetime.date(2013, 3, 4), description='Habit 2') h2.set_reminder_schedule(SCHEDULE_MON_WED_FRI, 16) h2.save() self.assertEquals(len(self._scheduled(calendar.MONDAY, 0)), 0) self.assertEquals(len(self._scheduled(calendar.MONDAY, 16)), 2) self.assertEquals(len(self._scheduled(calendar.WEDNESDAY, 0)), 0) self.assertEquals(len(self._scheduled(calendar.WEDNESDAY, 16)), 1)
def test_set_reminder_schedule_validation(self): mondays = [n == 0 for n in range(7)] h = Habit() # Can't specify a negative hour with self.assertRaises(ValueError): h.set_reminder_schedule(mondays, -2) # Can't specify an hour > 23 with self.assertRaises(ValueError): h.set_reminder_schedule(mondays, 24) # Can't give a list of length != 7 with self.assertRaises(ValueError): h.set_reminder_schedule(mondays[:-1], 12) with self.assertRaises(ValueError): h.set_reminder_schedule(mondays + [True], 12)
def test_set_reminder_schedule(self): h = Habit() h.set_reminder_schedule(SCHEDULE_MONDAYS, 12) self.assertEquals(h.reminder_days, 1) self.assertEquals(h.reminder_hour, 12) h.set_reminder_schedule(SCHEDULE_MON_WED_FRI, 3) self.assertEquals(h.reminder_days, 1 | 4 | 16) self.assertEquals(h.reminder_hour, 3) h.set_reminder_schedule(SCHEDULE_WEEKENDS, 0) self.assertEquals(h.reminder_days, 32 | 64) self.assertEquals(h.reminder_hour, 0)