Spaces:
Runtime error
Runtime error
| import asyncio | |
| import pytest | |
| from backend.services import task_queue | |
| async def test_cancel_queued_generation_skips_execution(): | |
| task_queue.init_queue(force=True) | |
| running_started = asyncio.Event() | |
| release_running = asyncio.Event() | |
| queued_ran = asyncio.Event() | |
| async def running_job(): | |
| running_started.set() | |
| await release_running.wait() | |
| async def queued_job(): | |
| queued_ran.set() | |
| task_queue.enqueue_generation("gen-running", running_job()) | |
| await asyncio.wait_for(running_started.wait(), timeout=1) | |
| task_queue.enqueue_generation("gen-queued", queued_job()) | |
| assert task_queue.cancel_generation("gen-queued") == "queued" | |
| release_running.set() | |
| await asyncio.sleep(0.1) | |
| assert not queued_ran.is_set() | |
| async def test_cancel_running_generation_cancels_task(): | |
| task_queue.init_queue(force=True) | |
| running_started = asyncio.Event() | |
| running_cancelled = asyncio.Event() | |
| async def running_job(): | |
| running_started.set() | |
| try: | |
| await asyncio.Event().wait() | |
| except asyncio.CancelledError: | |
| running_cancelled.set() | |
| raise | |
| task_queue.enqueue_generation("gen-running", running_job()) | |
| await asyncio.wait_for(running_started.wait(), timeout=1) | |
| assert task_queue.cancel_generation("gen-running") == "running" | |
| await asyncio.wait_for(running_cancelled.wait(), timeout=1) | |