@@ -40,7 +40,22 @@ def celery(init_celery):
40
40
return init_celery ()
41
41
42
42
43
- def test_simple (capture_events , celery ):
43
+ @pytest .mark .parametrize (
44
+ "invocation,expected_context" ,
45
+ [
46
+ [lambda task , x , y : task .delay (x , y ), {"args" : [1 , 0 ], "kwargs" : {}}],
47
+ [lambda task , x , y : task .apply_async ((x , y )), {"args" : [1 , 0 ], "kwargs" : {}}],
48
+ [
49
+ lambda task , x , y : task .apply_async (args = (x , y )),
50
+ {"args" : [1 , 0 ], "kwargs" : {}},
51
+ ],
52
+ [
53
+ lambda task , x , y : task .apply_async (kwargs = dict (x = x , y = y )),
54
+ {"args" : [], "kwargs" : {"x" : 1 , "y" : 0 }},
55
+ ],
56
+ ],
57
+ )
58
+ def test_simple (capture_events , celery , invocation , expected_context ):
44
59
events = capture_events ()
45
60
46
61
@celery .task (name = "dummy_task" )
@@ -51,18 +66,17 @@ def dummy_task(x, y):
51
66
span_context = SpanContext .start_trace ()
52
67
with configure_scope () as scope :
53
68
scope .set_span_context (span_context )
54
- dummy_task .delay (1 , 2 )
55
- dummy_task .delay (1 , 0 )
69
+
70
+ invocation (dummy_task , 1 , 2 )
71
+ invocation (dummy_task , 1 , 0 )
56
72
57
73
event , = events
58
74
assert event ["contexts" ]["trace" ]["trace_id" ] == span_context .trace_id
59
75
assert event ["contexts" ]["trace" ]["span_id" ] != span_context .span_id
60
76
assert event ["transaction" ] == "dummy_task"
61
- assert event ["extra" ]["celery-job" ] == {
62
- "args" : [1 , 0 ],
63
- "kwargs" : {},
64
- "task_name" : "dummy_task" ,
65
- }
77
+ assert event ["extra" ]["celery-job" ] == dict (
78
+ task_name = "dummy_task" , ** expected_context
79
+ )
66
80
67
81
exception , = event ["exception" ]["values" ]
68
82
assert exception ["type" ] == "ZeroDivisionError"
0 commit comments