MCPcopy Index your code
hub / github.com/coleifer/huey / test_scheduling

Method test_scheduling

huey/tests/test_api.py:131–167  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

129 self.assertTrue(r.is_ready()) # Invert order of checks - OK.
130
131 def test_scheduling(self):
132 @self.huey.task()
133 def task_a(n):
134 return n + 1
135
136 result = task_a.schedule((3,), delay=60)
137 self.assertEqual(len(self.huey), 1)
138 self.assertEqual(self.huey.scheduled_count(), 0)
139
140 task = self.huey.dequeue()
141 self.assertFalse(self.huey.ready_to_run(task))
142 value = self.huey.execute(task) # Will not be run, will be scheduled.
143 self.assertTrue(value is None)
144 self.assertEqual(len(self.huey), 0)
145 self.assertEqual(self.huey.scheduled_count(), 1)
146
147 sched = self.huey.scheduled()
148 self.assertEqual(len(sched), 1)
149 self.assertEqual(sched[0], task)
150
151 # If we set the timestamp ahead, then we can verify the task will be
152 # ready to run in 60 seconds (as expected).
153 timestamp = datetime.datetime.now() + datetime.timedelta(seconds=60)
154 self.assertTrue(self.huey.ready_to_run(task, timestamp))
155
156 # Schedule a task with an old timestamp, it will be run immediately.
157 eta = datetime.datetime(2000, 1, 1) # In the past.
158 result = task_a.schedule((4,), eta=eta)
159 task2 = self.huey.dequeue()
160 self.assertTrue(self.huey.ready_to_run(task2))
161 self.assertEqual(self.huey.execute(task2), 5)
162 self.assertEqual(result.get(), 5)
163
164 # Original task still scheduled.
165 sched = self.huey.scheduled()
166 self.assertEqual(len(sched), 1)
167 self.assertEqual(sched[0], task)
168
169 def test_schedule_s(self):
170 @self.huey.task()

Callers

nothing calls this directly

Calls 7

scheduled_countMethod · 0.80
ready_to_runMethod · 0.80
scheduledMethod · 0.80
scheduleMethod · 0.45
dequeueMethod · 0.45
executeMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected