def test_working_hours_multidate(self): """ Test checking working hours when lesson starts in one day, and ends on another. This will be frequent situations, because our teachers are in different timezones. """ mixer.blend(WorkingHours, teacher=self.teacher, start='23:00', end='23:59', weekday=0) mixer.blend(WorkingHours, teacher=self.teacher, start='00:00', end='02:00', weekday=1) entry_besides_hours = TimelineEntry( teacher=self.teacher, start=self.tzdatetime(2032, 5, 3, 22, 0), # does not fit end=self.tzdatetime(2032, 5, 4, 0, 30) ) self.assertFalse(entry_besides_hours.is_fitting_working_hours()) entry_besides_hours.start = self.tzdatetime(2032, 5, 3, 22, 30) # does fit entry_besides_hours.end = self.tzdatetime(2016, 7, 26, 2, 30) # does not fit self.assertFalse(entry_besides_hours.is_fitting_working_hours()) entry_within_hours = TimelineEntry( teacher=self.teacher, start=self.tzdatetime(2032, 5, 3, 23, 30), end=self.tzdatetime(2032, 5, 4, 0, 30) ) self.assertTrue(entry_within_hours.is_fitting_working_hours())
def test_working_hours(self): mixer.blend(WorkingHours, teacher=self.teacher, start='12:00', end='13:00', weekday=0) entry_besides_hours = TimelineEntry( teacher=self.teacher, start=self.tzdatetime(2032, 5, 3, 4, 0), end=self.tzdatetime(2032, 5, 3, 4, 30), ) self.assertFalse(entry_besides_hours.is_fitting_working_hours()) entry_within_hours = TimelineEntry( teacher=self.teacher, start=self.tzdatetime(2032, 5, 3, 12, 30), end=self.tzdatetime(2032, 5, 3, 13, 0), ) self.assertTrue(entry_within_hours.is_fitting_working_hours())
def test_working_hours_nonexistant(self): entry = TimelineEntry( teacher=self.teacher, start=self.tzdatetime(2032, 5, 3, 22, 0), # does not fit end=self.tzdatetime(2032, 5, 3, 22, 30), ) self.assertFalse(entry.is_fitting_working_hours()) # should not throw anything