Exemple #1
0
 def test_pretty_name(self):
     make = lambda p: CronSchedule.create(self.t, self.q, p)
     self.assertEqual(make('HALFHOURLY').pretty_name(), 'HALFHOURLY')
     self.assertEqual(make('HOURLY').pretty_name(), 'HOURLY')
     self.assertEqual(make('DAILY').pretty_name(), 'DAILY')
     self.assertEqual(make('WEEKLY').pretty_name(), 'WEEKLY')
     self.assertEqual(make('MONTHLY').pretty_name(), 'MONTHLY')
Exemple #2
0
 def test_pretty_name(self):
     make = lambda p: CronSchedule.create(self.t, self.q, p)
     self.assertEqual(make('HALFHOURLY').pretty_name(), 'HALFHOURLY')
     self.assertEqual(make('HOURLY').pretty_name(), 'HOURLY')
     self.assertEqual(make('DAILY').pretty_name(), 'DAILY')
     self.assertEqual(make('WEEKLY').pretty_name(), 'WEEKLY')
     self.assertEqual(make('MONTHLY').pretty_name(), 'MONTHLY')
Exemple #3
0
 def test_bad_schedule(self):
     task = make_task()
     queue = make_queue()
     s = CronSchedule.create(task, queue, "o*d*w*h*m*s*")
     s.encoding = "gibberish"
     s.save()
     self._scheduler.flag.set()
     wait_until(lambda: CronSchedule.objects.get(pk=s.pk).deleted, 2)
Exemple #4
0
 def test_bad_schedule(self):
     task = make_task()
     queue = make_queue()
     s = CronSchedule.create(task, queue, "o*d*w*h*m*s*")
     s.encoding = "gibberish"
     s.save()
     self._scheduler.flag.set()
     wait_until(lambda: CronSchedule.objects.get(pk=s.pk).deleted, 2)
Exemple #5
0
def convert_schedule(st, task, queue):
    o = st.month if st.__month_r__ != CronSchedule.MONTHS else '*'
    d = st.day_of_month if st.__day_of_month_r__ != CronSchedule.DAYS else '*'
    w = st.day_of_week if st.__day_of_week_r__ != CronSchedule.DAYSOFWEEK else '*'
    h = st.hour if st.__hour_r__ != CronSchedule.HOURS else '*'
    m = st.minute if st.__minute_r__ != CronSchedule.MINUTES else '*'
    s = random.choice(CronSchedule.SECONDS)
    encoding = 'o%sd%sw%sh%sm%ss%s' % (o, d, w, h, m, s)
    return CronSchedule.create(task, queue, encoding)
def convert_schedule(st, task, queue):
    o = st.month if st.__month_r__ != CronSchedule.MONTHS else '*'
    d = st.day_of_month if st.__day_of_month_r__ != CronSchedule.DAYS else '*'
    w = st.day_of_week if st.__day_of_week_r__ != CronSchedule.DAYSOFWEEK else '*'
    h = st.hour if st.__hour_r__ != CronSchedule.HOURS else '*'
    m = st.minute if st.__minute_r__ != CronSchedule.MINUTES else '*'
    s = random.choice(CronSchedule.SECONDS)
    encoding = 'o%sd%sw%sh%sm%ss%s' % (o, d, w, h, m, s)
    return CronSchedule.create(task, queue, encoding)
Exemple #7
0
 def test_update_schedule(self):
     task = make_task()
     queue = make_queue()
     s = CronSchedule.create(task, queue, 'o*d*w*h*m*s*', 10)
     self._scheduler.flag.set()
     wait_until(lambda: queue.count() == 2, 5)
     s.encoding = 'o*d*w*h*m*s4'
     s.save()
     self.assertRaises(Exception,
         lambda: wait_until(lambda: s.instances.count() > 3, 3))
Exemple #8
0
 def test_update_schedule(self):
     task = make_task()
     queue = make_queue()
     s = CronSchedule.create(task, queue, 'o*d*w*h*m*s*', 10)
     self._scheduler.flag.set()
     wait_until(lambda: queue.count() == 2, 5)
     s.encoding = 'o*d*w*h*m*s4'
     s.save()
     self.assertRaises(
         Exception, lambda: wait_until(lambda: s.instances.count() > 3, 3))
Exemple #9
0
 def test_cron(self):
     task = make_task()
     queue = make_queue()
     s = CronSchedule.create(task, queue, 'o*d*w*h*m*s*', 3)
     self._scheduler.flag.set()
     wait_until(lambda: queue.count() == 3, 8)
     enqueued = map(lambda i: i.enqueued, s.instances)
     def fold(acc, e):
         self.assertEqual(e - acc, timedelta(seconds=1))
         return e
     reduce(fold, enqueued)
Exemple #10
0
 def test_reload(self):
     task = make_task()
     queue = make_queue()
     now = datetime.utcnow()
     s = CronSchedule.create(task, queue, 'o*d*w*h*m*s%s' %
         ((now.second - 1) % 60), 1)
     self._scheduler.flag.set()
     wait_until(lambda: self.scheduler.cronschedules.count() == 1, 5)
     CronSchedule.objects.get(pk=s.pk).reschedule('o*d*w*h*m*s*')
     self.scheduler.make_request(Request.RELOAD)
     self._scheduler.flag.set()
     wait_until(lambda: s.instances.count() == 1, 10)
Exemple #11
0
 def test_reload(self):
     task = make_task()
     queue = make_queue()
     now = datetime.utcnow()
     s = CronSchedule.create(task, queue,
                             'o*d*w*h*m*s%s' % ((now.second - 1) % 60), 1)
     self._scheduler.flag.set()
     wait_until(lambda: self.scheduler.cronschedules.count() == 1, 5)
     CronSchedule.objects.get(pk=s.pk).reschedule('o*d*w*h*m*s*')
     self.scheduler.make_request(Request.RELOAD)
     self._scheduler.flag.set()
     wait_until(lambda: s.instances.count() == 1, 10)
Exemple #12
0
    def test_cron(self):
        task = make_task()
        queue = make_queue()
        s = CronSchedule.create(task, queue, 'o*d*w*h*m*s*', 3)
        self._scheduler.flag.set()
        wait_until(lambda: queue.count() == 3, 8)
        enqueued = map(lambda i: i.enqueued, s.instances)

        def fold(acc, e):
            self.assertEqual(e - acc, timedelta(seconds=1))
            return e

        reduce(fold, enqueued)