Skip to content
Merged
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
35402ee
allow extra fields in TaskFilter and test
bisgaard-itis Sep 10, 2025
bbaf2a5
add test of field_sorting_key
bisgaard-itis Sep 10, 2025
3aeb4fb
Merge branch 'master' into 8333-fix-filtering-bug-in-celery-tasks
bisgaard-itis Sep 11, 2025
093b6c5
extend functionality of TaskFilter
bisgaard-itis Sep 11, 2025
bde276c
fix listing of tasks
bisgaard-itis Sep 11, 2025
6daf856
add test for filtering
bisgaard-itis Sep 11, 2025
2d01d69
upper -> lower case client ASYNC_JOB_CLIENT_NAMEs
bisgaard-itis Sep 11, 2025
494a8a2
remove filtering input to rpc async job interface
bisgaard-itis Sep 11, 2025
91b7fbc
Merge branch 'master' into 8333-fix-filtering-bug-in-celery-tasks
bisgaard-itis Sep 11, 2025
59b0064
minor cleanup
bisgaard-itis Sep 11, 2025
f9f04d6
pylint
bisgaard-itis Sep 11, 2025
e9f5d42
pylint
bisgaard-itis Sep 11, 2025
60a72aa
fix test
bisgaard-itis Sep 11, 2025
59fe947
Merge branch 'master' into 8333-fix-filtering-bug-in-celery-tasks
bisgaard-itis Sep 11, 2025
4f4b1f5
correct wrong usage of client_app_name
bisgaard-itis Sep 11, 2025
31fc291
add doc
bisgaard-itis Sep 11, 2025
6389fda
use app-name for ASYNC_JOB_CLIENT_NAME in api-server
bisgaard-itis Sep 11, 2025
33a2ae4
use app-name in storage when specifying client_name in AsyncJobFilter
bisgaard-itis Sep 11, 2025
be84da1
use app-name in AsyncJobFilter in webserver
bisgaard-itis Sep 11, 2025
9a8d113
cleanup in webserver
bisgaard-itis Sep 11, 2025
9fe331b
cleanup in api-server
bisgaard-itis Sep 11, 2025
fdff2d8
fix import error
bisgaard-itis Sep 11, 2025
b04a0af
fix storage mocks
bisgaard-itis Sep 11, 2025
87dedd9
fix mock
bisgaard-itis Sep 12, 2025
7ede81b
Merge branch 'master' into 8333-fix-filtering-bug-in-celery-tasks
bisgaard-itis Sep 12, 2025
36d92ff
Several minor corrections @pcrespov
bisgaard-itis Sep 12, 2025
c767367
document usage @pcrespov
bisgaard-itis Sep 12, 2025
7ede2aa
introduce backend agnostic wildcard
bisgaard-itis Sep 12, 2025
e5b2602
simplify wildcard usage
bisgaard-itis Sep 12, 2025
a906622
minor cleanup
bisgaard-itis Sep 12, 2025
6a9b046
enhance docs
bisgaard-itis Sep 12, 2025
f81dccd
cleanup @pcrespov
bisgaard-itis Sep 12, 2025
5603624
pylint
bisgaard-itis Sep 12, 2025
b8359d9
simplify wildcard usage
bisgaard-itis Sep 12, 2025
52897f5
minor fix
bisgaard-itis Sep 12, 2025
7c4fbba
Merge branch 'master' into 8333-fix-filtering-bug-in-celery-tasks
bisgaard-itis Sep 12, 2025
80817ec
model -> schema @pcrespov
bisgaard-itis Sep 12, 2025
ae8d703
fixes @pcrespov
bisgaard-itis Sep 12, 2025
c5bc5d2
Merge branch 'master' into 8333-fix-filtering-bug-in-celery-tasks
bisgaard-itis Sep 12, 2025
47ab209
Merge branch 'master' into 8333-fix-filtering-bug-in-celery-tasks
bisgaard-itis Sep 12, 2025
bf3dd0e
fix test
bisgaard-itis Sep 12, 2025
af2cd57
test fix
bisgaard-itis Sep 12, 2025
9e5cd7b
Merge branch 'master' into 8333-fix-filtering-bug-in-celery-tasks
bisgaard-itis Sep 12, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 41 additions & 33 deletions packages/celery-library/tests/unit/test_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,7 @@ async def test_listing_task_uuids_contains_submitted_task(

async def test_filtering_listing_tasks(
celery_task_manager: CeleryTaskManager,
with_celery_worker: WorkController,
):
class MyFilter(TaskFilter):
user_id: int
Expand All @@ -218,39 +219,46 @@ class MyFilter(TaskFilter):

user_id = 42
expected_task_uuids: set[TaskUUID] = set()
all_tasks: list[tuple[TaskUUID, MyFilter]] = []

try:
for _ in range(5):
task_filter = MyFilter(
user_id=user_id,
product_name=_faker.word(),
client_app=_faker.word(),
)
task_uuid = await celery_task_manager.submit_task(
TaskMetadata(
name=dreamer_task.__name__,
),
task_filter=task_filter,
)
expected_task_uuids.add(task_uuid)
all_tasks.append((task_uuid, task_filter))

for _ in range(3):
task_filter = MyFilter(
user_id=_faker.pyint(min_value=100, max_value=200),
product_name=_faker.word(),
client_app=_faker.word(),
)
task_uuid = await celery_task_manager.submit_task(
TaskMetadata(
name=dreamer_task.__name__,
),
task_filter=task_filter,
)
all_tasks.append((task_uuid, task_filter))

for _ in range(5):
task_filter = MyFilter(
search_filter = MyFilter(
user_id=user_id,
product_name=_faker.word(),
client_app=_faker.word(),
)
task_uuid = await celery_task_manager.submit_task(
TaskMetadata(
name=dreamer_task.__name__,
),
task_filter=task_filter,
product_name=Wildcard(),
client_app=Wildcard(),
)
expected_task_uuids.add(task_uuid)

for _ in range(3):
task_filter = MyFilter(
user_id=_faker.pyint(min_value=100, max_value=200),
product_name=_faker.word(),
client_app=_faker.word(),
)
await celery_task_manager.submit_task(
TaskMetadata(
name=dreamer_task.__name__,
),
task_filter=task_filter,
)

search_filter = MyFilter(
user_id=user_id,
product_name=Wildcard(),
client_app=Wildcard(),
)
tasks = await celery_task_manager.list_tasks(search_filter)
assert expected_task_uuids == {task.uuid for task in tasks}
await asyncio.sleep(5 * 60)
tasks = await celery_task_manager.list_tasks(search_filter)
assert expected_task_uuids == {task.uuid for task in tasks}
finally:
# clean up all tasks. this should ideally be done in the fixture
for task_uuid, task_filter in all_tasks:
await celery_task_manager.cancel_task(task_filter, task_uuid)
Loading