def test_ClockedSchedule_schedule(self): due_datetime = make_aware(datetime(day=26, month=7, year=3000, hour=1, minute=0)) # future time s = ClockedSchedule(clocked_time=due_datetime) dt = datetime(day=25, month=7, year=2050, hour=1, minute=0) dt_lastrun = make_aware(dt) assert s.schedule is not None isdue, nextcheck = s.schedule.is_due(dt_lastrun) assert isdue is False # False means task isn't due, but keep checking. assert (nextcheck > 0) and (isdue is False) or \ (nextcheck == s.max_interval) and (isdue is True) due_datetime = make_aware(datetime.now()) s = ClockedSchedule(clocked_time=due_datetime) dt2_lastrun = make_aware(datetime.now()) assert s.schedule is not None isdue2, nextcheck2 = s.schedule.is_due(dt2_lastrun) assert isdue2 is True # True means task is due and should run. assert (nextcheck2 is None) and (isdue2 is True) print(s.schedule.enabled) assert s.schedule is not None isdue3, nextcheck3 = s.schedule.is_due(dt2_lastrun) print(s.schedule.clocked_time, s.schedule.enabled) print(isdue3, nextcheck3) # False means task isn't due, but keep checking. assert isdue3 is False assert (nextcheck3 is None) and (isdue3 is False)
def setup_scheduler(self, app): self.app = app self.app.conf.beat_schedule = {} self.m1 = self.create_model_interval(schedule(timedelta(seconds=10))) self.m1.save() self.m1.refresh_from_db() self.m2 = self.create_model_interval(schedule(timedelta(minutes=20))) self.m2.save() self.m2.refresh_from_db() self.m3 = self.create_model_crontab(crontab(minute='2,4,5')) self.m3.save() self.m3.refresh_from_db() self.m4 = self.create_model_solar(solar('solar_noon', 48.06, 12.86)) self.m4.save() self.m4.refresh_from_db() dt_aware = make_aware( datetime(day=26, month=7, year=3000, hour=1, minute=0)) # future time self.m6 = self.create_model_clocked(clocked(dt_aware)) self.m6.save() self.m6.refresh_from_db() # disabled, should not be in schedule m5 = self.create_model_interval(schedule(timedelta(seconds=1))) m5.enabled = False m5.save() self.s = self.Scheduler(app=self.app)
def test_PeriodicTask_unicode_clocked(self): time = make_aware(datetime.now()) p = self.create_model_clocked( clocked(time), name='clocked_event' ) assert text_t(p) == '{0}: {1} {2}'.format( 'clocked_event', str(time), True )
def test_SolarSchedule_schedule(self): s = SolarSchedule(event='solar_noon', latitude=48.06, longitude=12.86) dt = datetime(day=26, month=7, year=2050, hour=1, minute=0) dt_lastrun = make_aware(dt) assert s.schedule is not None isdue, nextcheck = s.schedule.is_due(dt_lastrun) assert isdue is False # False means task isn't due, but keep checking. assert (nextcheck > 0) and (isdue is False) or \ (nextcheck == s.max_interval) and (isdue is True) s2 = SolarSchedule(event='solar_noon', latitude=48.06, longitude=12.86) dt2 = datetime(day=26, month=7, year=2000, hour=1, minute=0) dt2_lastrun = make_aware(dt2) assert s2.schedule is not None isdue2, nextcheck2 = s2.schedule.is_due(dt2_lastrun) assert isdue2 is True # True means task is due and should run. assert (nextcheck2 > 0) and (isdue2 is True) or \ (nextcheck2 == s2.max_interval) and (isdue2 is False)
def test_SolarSchedule_schedule(self): s = SolarSchedule(event='solar_noon', latitude=48.06, longitude=12.86) dt = datetime(day=25, month=7, year=2017, hour=12, minute=0) dt_lastrun = make_aware(dt) assert s.schedule is not None isdue, nextcheck = s.schedule.is_due(dt_lastrun) assert isdue is False # False means scheduler needs to keep checking. assert (nextcheck > 0) and (isdue is False) or \ (nextcheck == s.max_interval) and (isdue is True)