@@ -93,41 +93,43 @@ def test_auto_setup_skips_when_celery_disabled(celery_app):
9393 get_o11y_config .cache_clear ()
9494
9595
96- def test_celery_setup_enables_task_events (celery_app ):
97- """setup_celery_o11y sets worker_send_task_events and task_send_sent_event."""
98- from django_o11y . tracing import setup
96+ def test_configure_celery_metrics_events_sets_flags (celery_app ):
97+ """_configure_celery_metrics_events sets worker_send_task_events and task_send_sent_event."""
98+ from unittest . mock import patch
9999
100- original_pid = setup ._instrumented_pid
101- setup ._instrumented_pid = None
100+ from django_o11y .tracing .setup import _configure_celery_metrics_events
102101
103- try :
104- config = {"CELERY" : {"ENABLED" : True }}
105- setup .setup_celery_o11y (celery_app , config = config )
102+ config = {
103+ "CELERY" : {"ENABLED" : True , "METRICS_ENABLED" : True },
104+ "METRICS" : {"PROMETHEUS_ENABLED" : True },
105+ }
106106
107- assert celery_app .conf .worker_send_task_events is True
108- assert celery_app .conf .task_send_sent_event is True
109- finally :
110- setup ._instrumented_pid = original_pid
107+ with patch ("celery.current_app" , celery_app ):
108+ _configure_celery_metrics_events (config )
111109
110+ assert celery_app .conf .worker_send_task_events is True
111+ assert celery_app .conf .task_send_sent_event is True
112112
113- def test_celery_setup_does_not_set_events_when_disabled (celery_app ):
114- """Task events are not touched when CELERY.ENABLED is False."""
115- from django_o11y .tracing import setup
116113
117- original_pid = setup ._instrumented_pid
118- setup ._instrumented_pid = None
119- # Reset to a known baseline
114+ def test_configure_celery_metrics_events_skips_when_metrics_disabled (celery_app ):
115+ """Task events are not set when Prometheus metrics are disabled."""
116+ from unittest .mock import patch
117+
118+ from django_o11y .tracing .setup import _configure_celery_metrics_events
119+
120120 celery_app .conf .worker_send_task_events = False
121121 celery_app .conf .task_send_sent_event = False
122122
123- try :
124- config = {"CELERY" : {"ENABLED" : False }}
125- setup .setup_celery_o11y (celery_app , config = config )
123+ config = {
124+ "CELERY" : {"ENABLED" : True , "METRICS_ENABLED" : True },
125+ "METRICS" : {"PROMETHEUS_ENABLED" : False },
126+ }
126127
127- assert celery_app .conf .worker_send_task_events is False
128- assert celery_app .conf .task_send_sent_event is False
129- finally :
130- setup ._instrumented_pid = original_pid
128+ with patch ("celery.current_app" , celery_app ):
129+ _configure_celery_metrics_events (config )
130+
131+ assert celery_app .conf .worker_send_task_events is False
132+ assert celery_app .conf .task_send_sent_event is False
131133
132134
133135def test_celery_prefork_pool_detection_defaults_to_prefork ():
0 commit comments