From 35b2a8fc842b8b9a90de3338dbc93d9cd34e9819 Mon Sep 17 00:00:00 2001 From: Roland Date: Fri, 23 Oct 2026 12:33:36 -0600 Subject: [PATCH] Clear the FileWorker private queue between tests The test harness resets the shared file worker public queue for each test, but the FileWorker's private LifoQueue is per-process state that survived from one test to the next. Tests that process only a count task leave its chained refresh task queued, and it later ran inside an unrelated test. Co-Authored-By: Claude Opus 5.5 --- wrolpi/conftest.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wrolpi/conftest.py b/wrolpi/conftest.py index 43f27fd9..e4a8ac68 100644 --- a/wrolpi/conftest.py +++ b/wrolpi/conftest.py @@ -50,6 +50,7 @@ from wrolpi.downloader import DownloadContext, DownloadManager, DownloadResult, downloads_manager_config_context, download_cache_config_context from wrolpi.errors import UnrecoverableDownloadError from wrolpi.files.models import Directory, FileGroup +from wrolpi.files.worker import file_worker from wrolpi.switches import await_switches as await_switches_ from wrolpi.tags import Tag, upsert_tag from wrolpi.vars import PROJECT_DIR @@ -299,6 +300,10 @@ async def async_client(test_directory, test_session, clear_background_tasks) -> api_app.signalize() attach_shared_contexts(api_app) initialize_configs_contexts(api_app) + # The FileWorker's private queue is per-process state that the shared-context reset does not touch; + # each test starts with no FileTasks left over from a previous test. + while not file_worker.private_queue.empty(): + file_worker.private_queue.get_nowait() client = SanicASGITestClient(api_app) wrapped_client = AutoAwaitTestClient(client, test_session)