Skip to content

Pin RabbitMQ broker image to 3.x in Celery tests#681

Merged
CasperWA merged 1 commit into
masterfrom
cwa/pin-rabbitmq-3
May 11, 2026
Merged

Pin RabbitMQ broker image to 3.x in Celery tests#681
CasperWA merged 1 commit into
masterfrom
cwa/pin-rabbitmq-3

Conversation

@CasperWA

@CasperWA CasperWA commented May 11, 2026

Copy link
Copy Markdown
Contributor

Summary

Pin the RabbitMQ Docker image used by the test_celery_remote tests to rabbitmq:3 instead of rabbitmq:latest.
RabbitMQ 4.x removed support for the transient_nonexcl_queues feature, which Celery/kombu requires during worker startup, causing all Linux CI jobs to fail.

Motivation

Fixes #680

The pytest-celery library defaults to rabbitmq:latest for its broker container.
A recent promotion of RabbitMQ 4.x to that tag broke the test_celery_remote test on every Linux runner, blocking every incoming PR (e.g. #677).

Changes

tests/strategies/transformation/conftest.py (new file)

Override the default_rabbitmq_broker_image fixture — the extension point that pytest-celery explicitly exposes for this purpose — to return "rabbitmq:3".
No other test behaviour changes.

Test Plan

  • pre-commit run -a passes with no modifications
  • test_celery_remote passes on Linux runners (verified by CI on this PR)

Generated using AI.

RabbitMQ 4.x removed transient_nonexcl_queues, which Celery/kombu
uses for the mingle boot-step. Pin to rabbitmq:3 via the
default_rabbitmq_broker_image fixture override provided by
pytest-celery for exactly this purpose.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Pins the RabbitMQ Docker image used by the test_celery_remote integration test setup to RabbitMQ 3.x to prevent CI failures caused by RabbitMQ 4.x removing/locking down the transient_nonexcl_queues behavior required by Celery/kombu during worker startup.

Changes:

  • Add a local default_rabbitmq_broker_image fixture override for pytest-celery.
  • Return "rabbitmq:3" instead of relying on rabbitmq:latest.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@codecov

codecov Bot commented May 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.44%. Comparing base (bc2987e) to head (73354b4).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #681   +/-   ##
=======================================
  Coverage   83.44%   83.44%           
=======================================
  Files          14       14           
  Lines         610      610           
=======================================
  Hits          509      509           
  Misses        101      101           
Flag Coverage Δ
linux 83.44% <ø> (ø)
linux-strategies 83.44% <ø> (ø)
windows 82.78% <ø> (ø)
windows-strategies 82.78% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@CasperWA

Copy link
Copy Markdown
Contributor Author

Squash commit message:

Title

Pin RabbitMQ broker image to 3.x in Celery tests (#680)

Body

RabbitMQ 4.x removed transient_nonexcl_queues, which Celery/kombu
uses for the mingle boot-step. Pin to rabbitmq:3 via the
default_rabbitmq_broker_image fixture override provided by
pytest-celery for exactly this purpose.

@CasperWA CasperWA merged commit 36f8c9e into master May 11, 2026
24 of 25 checks passed
@CasperWA CasperWA deleted the cwa/pin-rabbitmq-3 branch May 11, 2026 10:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix CI failure: RabbitMQ 4.x incompatible with Celery's transient_nonexcl_queues

3 participants