|
6 | 6 | from django.contrib.messages import get_messages |
7 | 7 | from django.http import HttpResponseRedirect |
8 | 8 | from django.template.response import TemplateResponse |
9 | | -from django.test import AsyncClient |
| 9 | +from django.test import AsyncClient, override_settings |
10 | 10 | from django.urls import reverse |
11 | 11 |
|
12 | 12 | from arq_admin.queue import Queue |
| 13 | +from tests.settings import REDIS_SETTINGS |
13 | 14 |
|
14 | 15 |
|
15 | 16 | @pytest.mark.asyncio() |
@@ -125,3 +126,34 @@ async def test_post_job_abort_view( |
125 | 126 | assert len(messages) == 1 |
126 | 127 | message = messages[0] |
127 | 128 | assert message.tags == message_tag |
| 129 | + |
| 130 | + |
| 131 | +@pytest.mark.asyncio() |
| 132 | +@pytest.mark.django_db() |
| 133 | +@pytest.mark.usefixtures('django_login') |
| 134 | +@override_settings(ARQ_QUEUES={ |
| 135 | + default_queue_name: REDIS_SETTINGS, |
| 136 | + 'arq:queue2': REDIS_SETTINGS, |
| 137 | +}) |
| 138 | +async def test_two_queues_detail_views(async_client: AsyncClient, redis: ArqRedis) -> None: |
| 139 | + second_queue_name = 'arq:queue2' |
| 140 | + import arq_admin.settings as arq_admin_settings |
| 141 | + from django.conf import settings as django_settings |
| 142 | + arq_admin_settings.ARQ_QUEUES = django_settings.ARQ_QUEUES |
| 143 | + |
| 144 | + await redis.enqueue_job('successful_task', _job_id='job1', _queue_name=default_queue_name) |
| 145 | + await redis.enqueue_job('successful_task', _job_id='job2', _queue_name=second_queue_name) |
| 146 | + |
| 147 | + # Check detail view for default queue |
| 148 | + url1 = reverse('arq_admin:all_jobs', kwargs={'queue_name': default_queue_name}) |
| 149 | + result1 = await async_client.get(url1) |
| 150 | + assert isinstance(result1, TemplateResponse) |
| 151 | + assert len(result1.context_data['object_list']) == 1 |
| 152 | + assert result1.context_data['object_list'][0].job_id == 'job1' |
| 153 | + |
| 154 | + # Check detail view for second queue |
| 155 | + url2 = reverse('arq_admin:all_jobs', kwargs={'queue_name': second_queue_name}) |
| 156 | + result2 = await async_client.get(url2) |
| 157 | + assert isinstance(result2, TemplateResponse) |
| 158 | + assert len(result2.context_data['object_list']) == 1 |
| 159 | + assert result2.context_data['object_list'][0].job_id == 'job2' |
0 commit comments