mirror of
https://github.com/django-q2/django-q2.git
synced 2026-10-07 18:28:12 +08:00
Added schedule command
* improved schedule tests * updated README * bumped up to version 0.1.3
This commit is contained in:
@@ -1,22 +1,25 @@
|
||||
from multiprocessing import Queue, Event
|
||||
|
||||
import pytest
|
||||
from django_q.core import scheduler, pusher, worker, monitor, redis_client
|
||||
|
||||
from django_q.core import scheduler, pusher, worker, monitor, redis_client, schedule as create_schedule
|
||||
from django_q import Schedule, get_task
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def r():
|
||||
return redis_client
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_scheduler(r):
|
||||
list_key = 'scheduler_test:q'
|
||||
r.delete(list_key)
|
||||
schedule = Schedule.objects.create(func='math.copysign',
|
||||
args='1, -1',
|
||||
schedule_type=Schedule.ONCE,
|
||||
repeats=1,
|
||||
hook='django_q.tests.tasks.result'
|
||||
)
|
||||
schedule = create_schedule('math.copysign',
|
||||
1, -1,
|
||||
hook='django_q.tests.tasks.result',
|
||||
schedule_type=Schedule.HOURLY,
|
||||
repeats=1)
|
||||
assert schedule.last_run() is None
|
||||
# run scheduler
|
||||
scheduler(list_key=list_key)
|
||||
@@ -39,8 +42,19 @@ def test_scheduler(r):
|
||||
assert result_queue.qsize() == 0
|
||||
schedule.refresh_from_db()
|
||||
assert schedule.repeats == 0
|
||||
assert schedule.last_run() is not None
|
||||
assert schedule.success() is True
|
||||
task = get_task(schedule.task)
|
||||
assert task is not None
|
||||
assert task.success is True
|
||||
assert task.result < 0
|
||||
for t in Schedule.TYPE:
|
||||
schedule = create_schedule('django_q.tests.tasks.word_multiply',
|
||||
2,
|
||||
word='django',
|
||||
schedule_type=t[0],
|
||||
repeats=1,
|
||||
hook='django_q.tests.tasks.result'
|
||||
)
|
||||
assert schedule is not None
|
||||
assert schedule.last_run() is None
|
||||
|
||||
Reference in New Issue
Block a user