From 92846d8660b03ebb4f145e03ffa355bee8f1434e Mon Sep 17 00:00:00 2001 From: Daniel Szoke Date: Fri, 3 May 2024 13:43:59 +0200 Subject: [PATCH] test(celery): Test that messaging.system gets set The messaging.system span data attribute should be set to the Celery broker being used, e.g. "amqp" for RabbitMQ, "redis" for Redis, and "sqs" for Amazon SQS. ref #2951 --- tests/integrations/celery/test_celery.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/integrations/celery/test_celery.py b/tests/integrations/celery/test_celery.py index 197e692461..f6a47b2760 100644 --- a/tests/integrations/celery/test_celery.py +++ b/tests/integrations/celery/test_celery.py @@ -704,3 +704,21 @@ def task(): ... (event,) = events (span,) = event["spans"] assert span["data"]["messaging.message.retry.count"] == 3 + + +@pytest.mark.parametrize("system", ("redis", "amqp")) +def test_messaging_system(system, init_celery, capture_events): + celery = init_celery(enable_tracing=True) + events = capture_events() + + # Does not need to be a real URL, since we use always eager + celery.conf.broker_url = f"{system}://example.com" # noqa: E231 + + @celery.task() + def task(): ... + + task.apply_async() + + (event,) = events + (span,) = event["spans"] + assert span["data"]["messaging.system"] == system