mirror of
https://github.com/django-q2/django-q2.git
synced 2026-10-08 13:28:13 +08:00
Expanding coverage
This commit is contained in:
@@ -24,7 +24,8 @@ INSTALLED_APPS = (
|
|||||||
'django.contrib.sessions',
|
'django.contrib.sessions',
|
||||||
'django.contrib.messages',
|
'django.contrib.messages',
|
||||||
'django.contrib.staticfiles',
|
'django.contrib.staticfiles',
|
||||||
'django_q'
|
'django_q',
|
||||||
|
'django_redis'
|
||||||
)
|
)
|
||||||
|
|
||||||
MIDDLEWARE_CLASSES = (
|
MIDDLEWARE_CLASSES = (
|
||||||
@@ -101,8 +102,21 @@ LOGGING = {
|
|||||||
|
|
||||||
STATIC_URL = '/static/'
|
STATIC_URL = '/static/'
|
||||||
|
|
||||||
|
# Django Redis
|
||||||
|
CACHES = {
|
||||||
|
"default": {
|
||||||
|
"BACKEND": "django_redis.cache.RedisCache",
|
||||||
|
"LOCATION": "redis://127.0.0.1:6379/0",
|
||||||
|
"OPTIONS": {
|
||||||
|
"CLIENT_CLASS": "django_redis.client.DefaultClient",
|
||||||
|
"PARSER_CLASS": "redis.connection.HiredisParser",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# Django Q specific
|
# Django Q specific
|
||||||
Q_CLUSTER = {'name': 'django_q_test',
|
Q_CLUSTER = {'name': 'django_q_test',
|
||||||
'cpu_affinity': 1,
|
'cpu_affinity': 1,
|
||||||
'testing': True,
|
'testing': True,
|
||||||
'log_level': 'DEBUG'}
|
'log_level': 'DEBUG',
|
||||||
|
'django_redis': 'default'}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ from django_q.humanhash import DEFAULT_WORDLIST
|
|||||||
from django_q.tasks import fetch, fetch_group, async, result, result_group, count_group, delete_group
|
from django_q.tasks import fetch, fetch_group, async, result, result_group, count_group, delete_group
|
||||||
from django_q.models import Task
|
from django_q.models import Task
|
||||||
from django_q.conf import Conf, redis_client
|
from django_q.conf import Conf, redis_client
|
||||||
|
from django_q.monitor import Stat
|
||||||
from .tasks import multiply
|
from .tasks import multiply
|
||||||
|
|
||||||
|
|
||||||
@@ -282,6 +283,29 @@ def test_recycle(r):
|
|||||||
r.delete(list_key)
|
r.delete(list_key)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_bad_secret(r, monkeypatch):
|
||||||
|
list_key = 'test_bad_secret'
|
||||||
|
async('math.copysign', 1, -1, list_key=list_key)
|
||||||
|
stop_event = Event()
|
||||||
|
stop_event.set()
|
||||||
|
start_event = Event()
|
||||||
|
s = Sentinel(stop_event, start_event, list_key=list_key, start=False)
|
||||||
|
Stat(s).save()
|
||||||
|
# change the SECRET
|
||||||
|
monkeypatch.setattr(Conf, "SECRET_KEY", "OOPS")
|
||||||
|
stat = Stat.get_all(r)
|
||||||
|
assert len(stat) == 0
|
||||||
|
assert Stat.get(s.parent_pid, r) is None
|
||||||
|
task_queue = Queue()
|
||||||
|
pusher(task_queue, stop_event, list_key=list_key, r=r)
|
||||||
|
result_queue = Queue()
|
||||||
|
task_queue.put('STOP')
|
||||||
|
worker(task_queue, result_queue, Value('b', -1), )
|
||||||
|
assert result_queue.qsize() == 0
|
||||||
|
r.delete(list_key)
|
||||||
|
|
||||||
|
|
||||||
@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
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
import pytest
|
||||||
|
|
||||||
|
from django_q import conf
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def r():
|
||||||
|
return conf.redis_client
|
||||||
|
|
||||||
|
|
||||||
|
def test_django_redis():
|
||||||
|
conf.Conf.DJANGO_REDIS = None
|
||||||
|
assert conf.redis_client.ping() is True
|
||||||
|
conf.Conf.DJANGO_REDIS = 'default'
|
||||||
|
assert conf.redis_client.ping() is True
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
from django_q.cluster import Cluster
|
from django_q.cluster import Cluster
|
||||||
from django_q.monitor import monitor
|
from django_q.monitor import monitor, Stat
|
||||||
|
|
||||||
|
|
||||||
def test_monitor():
|
def test_monitor():
|
||||||
|
assert Stat.get(0).sentinel == 0
|
||||||
c = Cluster()
|
c = Cluster()
|
||||||
c.start()
|
c.start()
|
||||||
stats = monitor(run_once=True)
|
stats = monitor(run_once=True)
|
||||||
@@ -12,5 +13,7 @@ def test_monitor():
|
|||||||
for stat in stats:
|
for stat in stats:
|
||||||
if stat.cluster_id == c.pid:
|
if stat.cluster_id == c.pid:
|
||||||
found_c = True
|
found_c = True
|
||||||
|
assert stat.uptime() > 0
|
||||||
|
assert stat.empty_queues() is True
|
||||||
break
|
break
|
||||||
assert found_c is True
|
assert found_c is True
|
||||||
|
|||||||
@@ -6,5 +6,7 @@ future==0.14.3
|
|||||||
hiredis==0.2.0
|
hiredis==0.2.0
|
||||||
redis==2.10.3
|
redis==2.10.3
|
||||||
psutil==3.1.1
|
psutil==3.1.1
|
||||||
|
django-redis==4.2.0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user