From 0ecc3a7a4e035ea51127ebf740a28dc089d79ad3 Mon Sep 17 00:00:00 2001 From: Pedro Brochado Date: Fri, 14 Feb 2025 11:05:15 -0300 Subject: [PATCH] wip: fix tests --- pulpcore/tasking/tasks.py | 3 ++ pulpcore/tests/functional/api/test_tasking.py | 32 ++++++++++--------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/pulpcore/tasking/tasks.py b/pulpcore/tasking/tasks.py index 479f63e920..099830b4ab 100644 --- a/pulpcore/tasking/tasks.py +++ b/pulpcore/tasking/tasks.py @@ -225,6 +225,9 @@ def dispatch( stack.enter_context(task) else: notify_workers = True + _logger.info("asdfasdf*") + _logger.info("asdfasdf") + _logger.info("*" * 50) if immediate: prior_tasks = Task.objects.filter( state__in=TASK_INCOMPLETE_STATES, pulp_created__lt=task.pulp_created diff --git a/pulpcore/tests/functional/api/test_tasking.py b/pulpcore/tests/functional/api/test_tasking.py index 6e0957ddce..035196d267 100644 --- a/pulpcore/tests/functional/api/test_tasking.py +++ b/pulpcore/tests/functional/api/test_tasking.py @@ -508,12 +508,14 @@ def test_immediate_task_requires_resource(pulpcore_bindings, dispatch_task, moni THEN an error is raised 3 + WHEN dispatching a task as immediate AND it takes longer than timeout THEN an error is raised """ LT_TIMEOUT = IMMEDIATE_TIMEOUT / 2 GT_TIMEOUT = IMMEDIATE_TIMEOUT + 1 LONG_RUNNING = 5 + COMMON_RESOURCE = "XYZ" def wait_until(state, task_href, timeout=10): for i in range(timeout): @@ -521,48 +523,48 @@ def wait_until(state, task_href, timeout=10): if task.state != state: break time.sleep(1) + raise RuntimeError("Timeout waiting for task to transition") + + def dispatch_long_task(requires_resource): + task_href = dispatch_task( + "pulpcore.app.tasks.test.sleep", + args=(LONG_RUNNING,), + exclusive_resources=[requires_resource], + ) + wait_until("running", task_href) # Case 1 - long_href = dispatch_task( - "pulpcore.app.tasks.test.sleep", args=(LONG_RUNNING,), exclusive_resources=["XYZ"] - ) - wait_until("running", long_href) + dispatch_long_task(requires_resource=COMMON_RESOURCE) task_href = dispatch_task( "pulpcore.app.tasks.test.asleep", args=(LT_TIMEOUT,), immediate=True, - exclusive_resources=["XYZ"], + exclusive_resources=[COMMON_RESOURCE], ) task = monitor_task(task_href) assert task.state == "completed" assert task.worker is not None # Case 2 - long_href = dispatch_task( - "pulpcore.app.tasks.test.sleep", args=(LONG_RUNNING,), exclusive_resources=["XYZ"] - ) - wait_until("running", long_href) + dispatch_long_task(requires_resource=COMMON_RESOURCE) with pytest.raises(PulpTaskError): task_href = dispatch_task( "pulpcore.app.tasks.test.asleep", args=(0,), immediate=True, deferred=False, - exclusive_resources=["XYZ"], + exclusive_resources=[COMMON_RESOURCE], ) monitor_task(task_href) # Case 3 - long_href = dispatch_task( - "pulpcore.app.tasks.test.sleep", args=(LONG_RUNNING,), exclusive_resources=["XYZ"] - ) - wait_until("running", long_href) + dispatch_long_task(requires_resource=COMMON_RESOURCE) with pytest.raises(PulpTaskError) as ctx: task_href = dispatch_task( "pulpcore.app.tasks.test.asleep", args=(GT_TIMEOUT,), immediate=True, - exclusive_resources=["XYZ"], + exclusive_resources=[COMMON_RESOURCE], ) monitor_task(task_href) assert "task timed out after" in ctx.value.task.error["description"]