mirror of
https://github.com/django-q2/django-q2.git
synced 2026-10-05 13:08:11 +08:00
Replace global Conf mangling with monkeypatch
The test suite, especially for the brokers, was heavily dependant on the success of the tests preceeding it to pass. This commit should eliminate that dependency and allow tests to fail without affecting others. It also removes the need to cleanup globals manually after a test.
This commit is contained in:
@@ -11,8 +11,8 @@ from django_q.signing import SignedPackage
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_admin_views(admin_client):
|
def test_admin_views(admin_client, monkeypatch):
|
||||||
Conf.ORM = 'default'
|
monkeypatch.setattr(Conf, 'ORM', 'default')
|
||||||
s = schedule('schedule.test')
|
s = schedule('schedule.test')
|
||||||
tag = uuid()
|
tag = uuid()
|
||||||
f = Task.objects.create(
|
f = Task.objects.create(
|
||||||
@@ -78,5 +78,3 @@ def test_admin_views(admin_client):
|
|||||||
data = {'post': 'yes'}
|
data = {'post': 'yes'}
|
||||||
response = admin_client.post(url, data)
|
response = admin_client.post(url, data)
|
||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
# cleanup
|
|
||||||
Conf.ORM = None
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from django_q.conf import Conf
|
|||||||
from django_q.humanhash import uuid
|
from django_q.humanhash import uuid
|
||||||
|
|
||||||
|
|
||||||
def test_broker():
|
def test_broker(monkeypatch):
|
||||||
broker = Broker()
|
broker = Broker()
|
||||||
broker.enqueue('test')
|
broker.enqueue('test')
|
||||||
broker.dequeue()
|
broker.dequeue()
|
||||||
@@ -27,39 +27,35 @@ def test_broker():
|
|||||||
assert broker.get_stat('test_1') == 'test'
|
assert broker.get_stat('test_1') == 'test'
|
||||||
assert broker.get_stats('test:*')[0] == 'test'
|
assert broker.get_stats('test:*')[0] == 'test'
|
||||||
# stats with no cache
|
# stats with no cache
|
||||||
Conf.CACHE = 'not_configured'
|
monkeypatch.setattr(Conf, 'CACHE', 'not_configured')
|
||||||
broker.cache = broker.get_cache()
|
broker.cache = broker.get_cache()
|
||||||
assert broker.get_stat('test_1') is None
|
assert broker.get_stat('test_1') is None
|
||||||
broker.set_stat('test_1', 'test', 3)
|
broker.set_stat('test_1', 'test', 3)
|
||||||
assert broker.get_stat('test_1') is None
|
assert broker.get_stat('test_1') is None
|
||||||
assert broker.get_stats('test:*') is None
|
assert broker.get_stats('test:*') is None
|
||||||
Conf.CACHE = 'default'
|
|
||||||
|
|
||||||
|
|
||||||
def test_redis():
|
def test_redis(monkeypatch):
|
||||||
Conf.DJANGO_REDIS = None
|
monkeypatch.setattr(Conf, 'DJANGO_REDIS', None)
|
||||||
broker = get_broker()
|
broker = get_broker()
|
||||||
assert broker.ping() is True
|
assert broker.ping() is True
|
||||||
assert broker.info() is not None
|
assert broker.info() is not None
|
||||||
Conf.REDIS = {'host': '127.0.0.1', 'port': 7799}
|
monkeypatch.setattr(Conf, 'REDIS', {'host': '127.0.0.1', 'port': 7799})
|
||||||
broker = get_broker()
|
broker = get_broker()
|
||||||
with pytest.raises(Exception):
|
with pytest.raises(Exception):
|
||||||
broker.ping()
|
broker.ping()
|
||||||
Conf.REDIS = None
|
|
||||||
Conf.DJANGO_REDIS = 'default'
|
|
||||||
|
|
||||||
|
|
||||||
def test_custom():
|
def test_custom(monkeypatch):
|
||||||
Conf.BROKER_CLASS = 'brokers.redis_broker.Redis'
|
monkeypatch.setattr(Conf, 'BROKER_CLASS', 'brokers.redis_broker.Redis')
|
||||||
broker = get_broker()
|
broker = get_broker()
|
||||||
assert broker.ping() is True
|
assert broker.ping() is True
|
||||||
assert broker.info() is not None
|
assert broker.info() is not None
|
||||||
assert broker.__class__.__name__ == 'Redis'
|
assert broker.__class__.__name__ == 'Redis'
|
||||||
Conf.BROKER_CLASS = None
|
|
||||||
|
|
||||||
|
|
||||||
def test_disque():
|
def test_disque(monkeypatch):
|
||||||
Conf.DISQUE_NODES = ['127.0.0.1:7711']
|
monkeypatch.setattr(Conf, 'DISQUE_NODES', ['127.0.0.1:7711'])
|
||||||
# check broker
|
# check broker
|
||||||
broker = get_broker(list_key='disque_test')
|
broker = get_broker(list_key='disque_test')
|
||||||
assert broker.ping() is True
|
assert broker.ping() is True
|
||||||
@@ -75,7 +71,7 @@ def test_disque():
|
|||||||
broker.acknowledge(task[0])
|
broker.acknowledge(task[0])
|
||||||
assert broker.queue_size() == 0
|
assert broker.queue_size() == 0
|
||||||
# Retry test
|
# Retry test
|
||||||
Conf.RETRY = 1
|
monkeypatch.setattr(Conf, 'RETRY', 1)
|
||||||
broker.enqueue('test')
|
broker.enqueue('test')
|
||||||
assert broker.queue_size() == 1
|
assert broker.queue_size() == 1
|
||||||
broker.dequeue()
|
broker.dequeue()
|
||||||
@@ -97,8 +93,8 @@ def test_disque():
|
|||||||
# bulk test
|
# bulk test
|
||||||
for i in range(5):
|
for i in range(5):
|
||||||
broker.enqueue('test')
|
broker.enqueue('test')
|
||||||
Conf.BULK = 5
|
monkeypatch.setattr(Conf, 'BULK', 5)
|
||||||
Conf.DISQUE_FASTACK = True
|
monkeypatch.setattr(Conf, 'DISQUE_FASTACK', True)
|
||||||
tasks = broker.dequeue()
|
tasks = broker.dequeue()
|
||||||
for task in tasks:
|
for task in tasks:
|
||||||
assert task is not None
|
assert task is not None
|
||||||
@@ -111,21 +107,16 @@ def test_disque():
|
|||||||
broker.delete_queue()
|
broker.delete_queue()
|
||||||
assert broker.queue_size() == 0
|
assert broker.queue_size() == 0
|
||||||
# connection test
|
# connection test
|
||||||
Conf.DISQUE_NODES = ['127.0.0.1:7798', '127.0.0.1:7799']
|
monkeypatch.setattr(Conf, 'DISQUE_NODES', ['127.0.0.1:7798', '127.0.0.1:7799'])
|
||||||
with pytest.raises(redis.exceptions.ConnectionError):
|
with pytest.raises(redis.exceptions.ConnectionError):
|
||||||
broker.get_connection()
|
broker.get_connection()
|
||||||
# back to django-redis
|
|
||||||
Conf.DISQUE_NODES = None
|
|
||||||
Conf.DISQUE_FASTACK = False
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skipif(not os.getenv('IRON_MQ_TOKEN'),
|
@pytest.mark.skipif(not os.getenv('IRON_MQ_TOKEN'),
|
||||||
reason="requires IronMQ credentials")
|
reason="requires IronMQ credentials")
|
||||||
def test_ironmq():
|
def test_ironmq(monkeypatch):
|
||||||
Conf.DISQUE_NODES = None
|
monkeypatch.setattr(Conf, 'IRON_MQ', {'token': os.getenv('IRON_MQ_TOKEN'),
|
||||||
Conf.SQS = None
|
'project_id': os.getenv('IRON_MQ_PROJECT_ID')})
|
||||||
Conf.IRON_MQ = {'token': os.getenv('IRON_MQ_TOKEN'),
|
|
||||||
'project_id': os.getenv('IRON_MQ_PROJECT_ID')}
|
|
||||||
# check broker
|
# check broker
|
||||||
broker = get_broker(list_key=uuid()[0])
|
broker = get_broker(list_key=uuid()[0])
|
||||||
assert broker.ping() is True
|
assert broker.ping() is True
|
||||||
@@ -143,7 +134,7 @@ def test_ironmq():
|
|||||||
broker.acknowledge(task[0])
|
broker.acknowledge(task[0])
|
||||||
assert broker.dequeue() is None
|
assert broker.dequeue() is None
|
||||||
# Retry test
|
# Retry test
|
||||||
# Conf.RETRY = 1
|
# monkeypatch.setattr(Conf, 'RETRY', 1)
|
||||||
# broker.enqueue('test')
|
# broker.enqueue('test')
|
||||||
# assert broker.dequeue() is not None
|
# assert broker.dequeue() is not None
|
||||||
# sleep(3)
|
# sleep(3)
|
||||||
@@ -162,7 +153,7 @@ def test_ironmq():
|
|||||||
# bulk test
|
# bulk test
|
||||||
for i in range(5):
|
for i in range(5):
|
||||||
broker.enqueue('test')
|
broker.enqueue('test')
|
||||||
Conf.BULK = 5
|
monkeypatch.setattr(Conf, 'BULK', 5)
|
||||||
tasks = broker.dequeue()
|
tasks = broker.dequeue()
|
||||||
for task in tasks:
|
for task in tasks:
|
||||||
assert task is not None
|
assert task is not None
|
||||||
@@ -175,19 +166,14 @@ def test_ironmq():
|
|||||||
broker.purge_queue()
|
broker.purge_queue()
|
||||||
assert broker.dequeue() is None
|
assert broker.dequeue() is None
|
||||||
broker.delete_queue()
|
broker.delete_queue()
|
||||||
# back to django-redis
|
|
||||||
Conf.IRON_MQ = None
|
|
||||||
Conf.DJANGO_REDIS = 'default'
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skipif(not os.getenv('AWS_ACCESS_KEY_ID'),
|
@pytest.mark.skipif(not os.getenv('AWS_ACCESS_KEY_ID'),
|
||||||
reason="requires AWS credentials")
|
reason="requires AWS credentials")
|
||||||
def test_sqs():
|
def test_sqs(monkeypatch):
|
||||||
Conf.IRON_MQ = None
|
monkeypatch.setattr(Conf, 'SQS', {'aws_region': os.getenv('AWS_REGION'),
|
||||||
Conf.DISQUE_NODES = None
|
'aws_access_key_id': os.getenv('AWS_ACCESS_KEY_ID'),
|
||||||
Conf.SQS = {'aws_region': os.getenv('AWS_REGION'),
|
'aws_secret_access_key': os.getenv('AWS_SECRET_ACCESS_KEY')})
|
||||||
'aws_access_key_id': os.getenv('AWS_ACCESS_KEY_ID'),
|
|
||||||
'aws_secret_access_key': os.getenv('AWS_SECRET_ACCESS_KEY')}
|
|
||||||
# check broker
|
# check broker
|
||||||
broker = get_broker(list_key=uuid()[0])
|
broker = get_broker(list_key=uuid()[0])
|
||||||
assert broker.ping() is True
|
assert broker.ping() is True
|
||||||
@@ -201,7 +187,7 @@ def test_sqs():
|
|||||||
broker.acknowledge(task[0])
|
broker.acknowledge(task[0])
|
||||||
assert broker.dequeue() is None
|
assert broker.dequeue() is None
|
||||||
# Retry test
|
# Retry test
|
||||||
Conf.RETRY = 1
|
monkeypatch.setattr(Conf, 'RETRY', 1)
|
||||||
broker.enqueue('test')
|
broker.enqueue('test')
|
||||||
assert broker.dequeue() is not None
|
assert broker.dequeue() is not None
|
||||||
sleep(2)
|
sleep(2)
|
||||||
@@ -222,7 +208,7 @@ def test_sqs():
|
|||||||
# bulk test
|
# bulk test
|
||||||
for i in range(10):
|
for i in range(10):
|
||||||
broker.enqueue('test')
|
broker.enqueue('test')
|
||||||
Conf.BULK = 12
|
monkeypatch.setattr(Conf, 'BULK', 12)
|
||||||
tasks = broker.dequeue()
|
tasks = broker.dequeue()
|
||||||
for task in tasks:
|
for task in tasks:
|
||||||
assert task is not None
|
assert task is not None
|
||||||
@@ -234,15 +220,11 @@ def test_sqs():
|
|||||||
broker.enqueue('test')
|
broker.enqueue('test')
|
||||||
broker.purge_queue()
|
broker.purge_queue()
|
||||||
broker.delete_queue()
|
broker.delete_queue()
|
||||||
# back to django-redis
|
|
||||||
Conf.SQS = None
|
|
||||||
Conf.BULK = 1
|
|
||||||
Conf.DJANGO_REDIS = 'default'
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_orm():
|
def test_orm(monkeypatch):
|
||||||
Conf.ORM = 'default'
|
monkeypatch.setattr(Conf, 'ORM', 'default')
|
||||||
# check broker
|
# check broker
|
||||||
broker = get_broker(list_key='orm_test')
|
broker = get_broker(list_key='orm_test')
|
||||||
assert broker.ping() is True
|
assert broker.ping() is True
|
||||||
@@ -258,7 +240,7 @@ def test_orm():
|
|||||||
broker.acknowledge(task[0])
|
broker.acknowledge(task[0])
|
||||||
assert broker.queue_size() == 0
|
assert broker.queue_size() == 0
|
||||||
# Retry test
|
# Retry test
|
||||||
Conf.RETRY = 1
|
monkeypatch.setattr(Conf, 'RETRY', 1)
|
||||||
broker.enqueue('test')
|
broker.enqueue('test')
|
||||||
assert broker.queue_size() == 1
|
assert broker.queue_size() == 1
|
||||||
broker.dequeue()
|
broker.dequeue()
|
||||||
@@ -280,7 +262,7 @@ def test_orm():
|
|||||||
# bulk test
|
# bulk test
|
||||||
for i in range(5):
|
for i in range(5):
|
||||||
broker.enqueue('test')
|
broker.enqueue('test')
|
||||||
Conf.BULK = 5
|
monkeypatch.setattr(Conf, 'BULK', 5)
|
||||||
tasks = broker.dequeue()
|
tasks = broker.dequeue()
|
||||||
assert broker.lock_size() == Conf.BULK
|
assert broker.lock_size() == Conf.BULK
|
||||||
for task in tasks:
|
for task in tasks:
|
||||||
@@ -295,13 +277,11 @@ def test_orm():
|
|||||||
broker.enqueue('test')
|
broker.enqueue('test')
|
||||||
broker.delete_queue()
|
broker.delete_queue()
|
||||||
assert broker.queue_size() == 0
|
assert broker.queue_size() == 0
|
||||||
# back to django-redis
|
|
||||||
Conf.ORM = None
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_mongo():
|
def test_mongo(monkeypatch):
|
||||||
Conf.MONGO = {'host': '127.0.0.1', 'port': 27017}
|
monkeypatch.setattr(Conf, 'MONGO', {'host': '127.0.0.1', 'port': 27017})
|
||||||
# check broker
|
# check broker
|
||||||
broker = get_broker(list_key='mongo_test')
|
broker = get_broker(list_key='mongo_test')
|
||||||
assert broker.ping() is True
|
assert broker.ping() is True
|
||||||
@@ -317,7 +297,7 @@ def test_mongo():
|
|||||||
broker.acknowledge(task[0])
|
broker.acknowledge(task[0])
|
||||||
assert broker.queue_size() == 0
|
assert broker.queue_size() == 0
|
||||||
# Retry test
|
# Retry test
|
||||||
Conf.RETRY = 1
|
monkeypatch.setattr(Conf, 'RETRY', 1)
|
||||||
broker.enqueue('test')
|
broker.enqueue('test')
|
||||||
assert broker.queue_size() == 1
|
assert broker.queue_size() == 1
|
||||||
broker.dequeue()
|
broker.dequeue()
|
||||||
@@ -356,5 +336,3 @@ def test_mongo():
|
|||||||
broker.purge_queue()
|
broker.purge_queue()
|
||||||
broker.delete_queue()
|
broker.delete_queue()
|
||||||
assert broker.queue_size() == 0
|
assert broker.queue_size() == 0
|
||||||
# back to django-redis
|
|
||||||
Conf.ORM = None
|
|
||||||
|
|||||||
@@ -10,13 +10,8 @@ from django_q.brokers import get_broker
|
|||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def broker():
|
def broker(monkeypatch):
|
||||||
Conf.DISQUE_NODES = None
|
monkeypatch.setattr(Conf, 'DJANGO_REDIS', 'default')
|
||||||
Conf.IRON_MQ = None
|
|
||||||
Conf.SQS = None
|
|
||||||
Conf.ORM = None
|
|
||||||
Conf.MONGO = None
|
|
||||||
Conf.DJANGO_REDIS = 'default'
|
|
||||||
return get_broker()
|
return get_broker()
|
||||||
|
|
||||||
|
|
||||||
@@ -148,7 +143,7 @@ def test_chain(broker):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_async_class(broker):
|
def test_async_class(broker, monkeypatch):
|
||||||
broker.purge_queue()
|
broker.purge_queue()
|
||||||
broker.cache.clear()
|
broker.cache.clear()
|
||||||
a = Async('math.copysign')
|
a = Async('math.copysign')
|
||||||
@@ -186,10 +181,8 @@ def test_async_class(broker):
|
|||||||
assert a.result_group() == [-1]
|
assert a.result_group() == [-1]
|
||||||
assert a.fetch_group() == [a.fetch()]
|
assert a.fetch_group() == [a.fetch()]
|
||||||
# global overrides
|
# global overrides
|
||||||
Conf.SYNC = True
|
monkeypatch.setattr(Conf, 'SYNC', True)
|
||||||
Conf.CACHED = True
|
monkeypatch.setattr(Conf, 'CACHED', True)
|
||||||
a = Async('math.floor', 1.5)
|
a = Async('math.floor', 1.5)
|
||||||
a.run()
|
a.run()
|
||||||
assert a.result() == 1
|
assert a.result() == 1
|
||||||
Conf.SYNC = False
|
|
||||||
Conf.CACHED = False
|
|
||||||
|
|||||||
@@ -29,13 +29,8 @@ class WordClass(object):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def broker():
|
def broker(monkeypatch):
|
||||||
Conf.DISQUE_NODES = None
|
monkeypatch.setattr(Conf, 'DJANGO_REDIS', 'default')
|
||||||
Conf.IRON_MQ = None
|
|
||||||
Conf.SQS = None
|
|
||||||
Conf.ORM = None
|
|
||||||
Conf.MONGO = None
|
|
||||||
Conf.DJANGO_REDIS = 'default'
|
|
||||||
return get_broker()
|
return get_broker()
|
||||||
|
|
||||||
|
|
||||||
@@ -281,7 +276,7 @@ def test_timeout_override(broker):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_recycle(broker):
|
def test_recycle(broker, monkeypatch):
|
||||||
# set up the Sentinel
|
# set up the Sentinel
|
||||||
broker.list_key = 'test_recycle_test:q'
|
broker.list_key = 'test_recycle_test:q'
|
||||||
async('django_q.tests.tasks.multiply', 2, 2, broker=broker)
|
async('django_q.tests.tasks.multiply', 2, 2, broker=broker)
|
||||||
@@ -290,8 +285,8 @@ def test_recycle(broker):
|
|||||||
start_event = Event()
|
start_event = Event()
|
||||||
stop_event = Event()
|
stop_event = Event()
|
||||||
# override settings
|
# override settings
|
||||||
Conf.RECYCLE = 2
|
monkeypatch.setattr(Conf, 'RECYCLE', 2)
|
||||||
Conf.WORKERS = 1
|
monkeypatch.setattr(Conf, 'WORKERS', 1)
|
||||||
# set a timer to stop the Sentinel
|
# set a timer to stop the Sentinel
|
||||||
threading.Timer(3, stop_event.set).start()
|
threading.Timer(3, stop_event.set).start()
|
||||||
s = Sentinel(stop_event, start_event, broker=broker)
|
s = Sentinel(stop_event, start_event, broker=broker)
|
||||||
@@ -310,7 +305,7 @@ def test_recycle(broker):
|
|||||||
# check if the work has been done
|
# check if the work has been done
|
||||||
assert result_queue.qsize() == 2
|
assert result_queue.qsize() == 2
|
||||||
# save_limit test
|
# save_limit test
|
||||||
Conf.SAVE_LIMIT = 1
|
monkeypatch.setattr(Conf, 'SAVE_LIMIT', 1)
|
||||||
result_queue.put('STOP')
|
result_queue.put('STOP')
|
||||||
# run monitor
|
# run monitor
|
||||||
monitor(result_queue)
|
monitor(result_queue)
|
||||||
@@ -361,14 +356,14 @@ def test_update_failed(broker):
|
|||||||
sleep(0.5)
|
sleep(0.5)
|
||||||
# second save - no success
|
# second save - no success
|
||||||
old_stopped = task['stopped']
|
old_stopped = task['stopped']
|
||||||
task['stopped']=timezone.now()
|
task['stopped'] = timezone.now()
|
||||||
save_task(task, broker)
|
save_task(task, broker)
|
||||||
saved_task = Task.objects.get(id=task['id'])
|
saved_task = Task.objects.get(id=task['id'])
|
||||||
assert saved_task.stopped > old_stopped
|
assert saved_task.stopped > old_stopped
|
||||||
# third save - success
|
# third save - success
|
||||||
task['stopped']=timezone.now()
|
task['stopped'] = timezone.now()
|
||||||
task['result']='result'
|
task['result'] = 'result'
|
||||||
task['success']=True
|
task['success'] = True
|
||||||
save_task(task, broker)
|
save_task(task, broker)
|
||||||
saved_task = Task.objects.get(id=task['id'])
|
saved_task = Task.objects.get(id=task['id'])
|
||||||
assert saved_task.success is True
|
assert saved_task.success is True
|
||||||
@@ -383,9 +378,6 @@ def test_update_failed(broker):
|
|||||||
assert saved_task.result == 'result'
|
assert saved_task.result == 'result'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def assert_result(task):
|
def assert_result(task):
|
||||||
assert task is not None
|
assert task is not None
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from django_q.conf import Conf
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_monitor():
|
def test_monitor(monkeypatch):
|
||||||
assert Stat.get(0).sentinel == 0
|
assert Stat.get(0).sentinel == 0
|
||||||
c = Cluster()
|
c = Cluster()
|
||||||
c.start()
|
c.start()
|
||||||
@@ -25,14 +25,13 @@ def test_monitor():
|
|||||||
break
|
break
|
||||||
assert found_c is True
|
assert found_c is True
|
||||||
# test lock size
|
# test lock size
|
||||||
Conf.ORM = 'default'
|
monkeypatch.setattr(Conf, 'ORM', 'default')
|
||||||
b = get_broker('monitor_test')
|
b = get_broker('monitor_test')
|
||||||
b.enqueue('test')
|
b.enqueue('test')
|
||||||
b.dequeue()
|
b.dequeue()
|
||||||
assert b.lock_size() == 1
|
assert b.lock_size() == 1
|
||||||
monitor(run_once=True, broker=b)
|
monitor(run_once=True, broker=b)
|
||||||
b.delete_queue()
|
b.delete_queue()
|
||||||
Conf.ORM = None
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
|
|||||||
@@ -13,17 +13,13 @@ from django_q.tasks import Schedule, fetch, schedule as create_schedule
|
|||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def broker():
|
def broker(monkeypatch):
|
||||||
Conf.DISQUE_NODES = None
|
monkeypatch.setattr(Conf, 'DJANGO_REDIS', 'default')
|
||||||
Conf.IRON_MQ = None
|
|
||||||
Conf.SQS = None
|
|
||||||
Conf.ORM = None
|
|
||||||
Conf.DJANGO_REDIS = 'default'
|
|
||||||
return get_broker()
|
return get_broker()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_scheduler(broker):
|
def test_scheduler(broker, monkeypatch):
|
||||||
broker.list_key = 'scheduler_test:q'
|
broker.list_key = 'scheduler_test:q'
|
||||||
broker.delete_queue()
|
broker.delete_queue()
|
||||||
schedule = create_schedule('math.copysign',
|
schedule = create_schedule('math.copysign',
|
||||||
@@ -117,7 +113,7 @@ def test_scheduler(broker):
|
|||||||
# ONCE schedule should be deleted
|
# ONCE schedule should be deleted
|
||||||
assert Schedule.objects.filter(pk=once_schedule.pk).exists() is False
|
assert Schedule.objects.filter(pk=once_schedule.pk).exists() is False
|
||||||
# Catch up On
|
# Catch up On
|
||||||
Conf.CATCH_UP = True
|
monkeypatch.setattr(Conf, 'CATCH_UP', True)
|
||||||
now = timezone.now()
|
now = timezone.now()
|
||||||
schedule = create_schedule('django_q.tests.tasks.word_multiply',
|
schedule = create_schedule('django_q.tests.tasks.word_multiply',
|
||||||
2,
|
2,
|
||||||
@@ -130,7 +126,7 @@ def test_scheduler(broker):
|
|||||||
schedule = Schedule.objects.get(pk=schedule.pk)
|
schedule = Schedule.objects.get(pk=schedule.pk)
|
||||||
assert schedule.next_run < now
|
assert schedule.next_run < now
|
||||||
# Catch up off
|
# Catch up off
|
||||||
Conf.CATCH_UP = False
|
monkeypatch.setattr(Conf, 'CATCH_UP', False)
|
||||||
scheduler(broker=broker)
|
scheduler(broker=broker)
|
||||||
schedule = Schedule.objects.get(pk=schedule.pk)
|
schedule = Schedule.objects.get(pk=schedule.pk)
|
||||||
assert schedule.next_run > now
|
assert schedule.next_run > now
|
||||||
|
|||||||
Reference in New Issue
Block a user