From 689dc1fd6b60adef44958059eb996086e9a4831b Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Wed, 22 Jul 2026 20:20:31 +0200 Subject: [PATCH] fix(campaign): honor acceptance temp selection --- .../run_celery_redelivery_acceptance.py | 10 +++++++--- tests/test_celery_redelivery_acceptance.py | 13 +++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/dev/mail-testbed/run_celery_redelivery_acceptance.py b/dev/mail-testbed/run_celery_redelivery_acceptance.py index bc44b03..d61e2e4 100644 --- a/dev/mail-testbed/run_celery_redelivery_acceptance.py +++ b/dev/mail-testbed/run_celery_redelivery_acceptance.py @@ -587,6 +587,12 @@ def _runtime_module_versions(registry: Any) -> dict[str, str]: return versions +def _create_runtime_root() -> Path: + """Create the isolated runtime under the platform-selected temp root.""" + + return Path(tempfile.mkdtemp(prefix="govoplan-campaign-celery-redelivery-")) + + def _bootstrap_and_run( *, settings: TestbedSettings, @@ -594,9 +600,7 @@ def _bootstrap_and_run( redis_url: str, visibility_timeout_seconds: int, ) -> dict[str, Any]: - runtime_root = Path( - tempfile.mkdtemp(prefix="govoplan-campaign-celery-redelivery-", dir="/tmp") - ) + runtime_root = _create_runtime_root() database = None try: os.environ.update( diff --git a/tests/test_celery_redelivery_acceptance.py b/tests/test_celery_redelivery_acceptance.py index 3dc5317..af22367 100644 --- a/tests/test_celery_redelivery_acceptance.py +++ b/tests/test_celery_redelivery_acceptance.py @@ -172,6 +172,19 @@ def test_worker_bootstrap_uses_real_late_ack_solo_celery_worker() -> None: assert "send_email.run" not in source +def test_runtime_root_uses_platform_temp_selection() -> None: + with mock.patch( + "govoplan_campaign_celery_redelivery_acceptance.tempfile.mkdtemp", + return_value="/selected-temp/govoplan-campaign-celery-redelivery-test", + ) as mkdtemp: + runtime_root = runner._create_runtime_root() + + assert runtime_root == Path( + "/selected-temp/govoplan-campaign-celery-redelivery-test" + ) + mkdtemp.assert_called_once_with(prefix="govoplan-campaign-celery-redelivery-") + + def test_worker_log_projection_matches_redelivered_task_without_retaining_id() -> None: with tempfile.TemporaryDirectory() as temporary_directory: log_path = Path(temporary_directory) / "worker.log"