1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
from typing import List
from litestar import get
from litestar.background_tasks import BackgroundTask, BackgroundTasks
from litestar.status_codes import HTTP_200_OK
from litestar.testing import create_test_client
async def test_background_tasks_regular_execution() -> None:
values: List[int] = []
def extend_values(values_to_extend: List[int]) -> None:
values.extend(values_to_extend)
tasks = BackgroundTasks(
[BackgroundTask(extend_values, [1, 2, 3]), BackgroundTask(extend_values, values_to_extend=[4, 5, 6])]
)
@get("/", background=tasks)
def handler() -> None:
return None
with create_test_client(handler) as client:
response = client.get("/")
assert response.status_code == HTTP_200_OK
assert values == [1, 2, 3, 4, 5, 6]
async def test_background_tasks_task_group_execution() -> None:
values: List[int] = []
def extend_values(values_to_extend: List[int]) -> None:
values.extend(values_to_extend)
tasks = BackgroundTasks(
[BackgroundTask(extend_values, [1, 2, 3]), BackgroundTask(extend_values, values_to_extend=[4, 5, 6])],
run_in_task_group=True,
)
@get("/", background=tasks)
def handler() -> None:
return None
with create_test_client(handler) as client:
response = client.get("/")
assert response.status_code == HTTP_200_OK
assert set(values) == {1, 2, 3, 4, 5, 6}
|