Files
aiomql/tests/live/unit/test_task_queue.py
T

37 lines
1.2 KiB
Python
Raw Normal View History

2024-10-28 06:36:10 +01:00
import asyncio
from aiomql.core.task_queue import TaskQueue, QueueItem
class TestTaskQueue:
@classmethod
def setup_class(cls):
2025-01-23 18:18:18 +01:00
cls.task_queue = TaskQueue(absolute_timeout=6, worker_timeout=1)
2024-11-04 00:32:51 +01:00
cls.data = {}
2024-10-28 06:36:10 +01:00
async def task_one(self):
for i in range(10):
await asyncio.sleep(0.5)
2024-11-04 00:32:51 +01:00
self.data.setdefault("task_one", {})[i] = f"task_one_{i}"
2024-10-28 06:36:10 +01:00
async def task_two(self):
for i in range(10):
await asyncio.sleep(0.5)
2024-11-04 00:32:51 +01:00
self.data.setdefault("task_two", {})[i] = f"task_two_{i}"
2024-10-28 06:36:10 +01:00
async def task_three(self):
for i in range(10):
2024-11-04 00:32:51 +01:00
self.data.setdefault("task_three", {})[i] = f"task_three_{i}"
2024-10-28 06:36:10 +01:00
await asyncio.sleep(10)
async def test_queue(self):
item_one = QueueItem(self.task_one)
self.task_queue.add(item=item_one, must_complete=False)
assert self.task_queue.queue.qsize() == 1
self.task_queue.add(item=QueueItem(self.task_two), must_complete=True)
assert self.task_queue.queue.qsize() == 2
self.task_queue.add(item=QueueItem(self.task_three), must_complete=False)
await self.task_queue.run()
2024-11-04 00:32:51 +01:00
assert len(self.data["task_one"]) >= 2
assert len(self.data["task_two"]) == 10