@@ -96,6 +96,46 @@ def test_set_attributes_not_recording(self):
9696 self .assertFalse (mock_span .set_attribute .called )
9797 self .assertFalse (mock_span .set_status .called )
9898
99+ def test_set_attributes_partial_timelimit_hard_limit (self ):
100+ # it should extract only relevant keys
101+ context = {
102+ "correlation_id" : "44b7f305" ,
103+ "delivery_info" : {"eager" : True },
104+ "eta" : "soon" ,
105+ "expires" : "later" ,
106+ "hostname" : "localhost" ,
107+ "id" : "44b7f305" ,
108+ "reply_to" : "44b7f305" ,
109+ "retries" : 4 ,
110+ "timelimit" : ("now" , None ),
111+ "custom_meta" : "custom_value" ,
112+ "routing_key" : "celery" ,
113+ }
114+ span = trace ._Span ("name" , mock .Mock (spec = trace_api .SpanContext ))
115+ utils .set_attributes_from_context (span , context )
116+ self .assertEqual (span .attributes .get ("celery.timelimit" ), ("now" , "" ))
117+
118+ def test_set_attributes_partial_timelimit_soft_limit (self ):
119+ # it should extract only relevant keys
120+ context = {
121+ "correlation_id" : "44b7f305" ,
122+ "delivery_info" : {"eager" : True },
123+ "eta" : "soon" ,
124+ "expires" : "later" ,
125+ "hostname" : "localhost" ,
126+ "id" : "44b7f305" ,
127+ "reply_to" : "44b7f305" ,
128+ "retries" : 4 ,
129+ "timelimit" : (None , "later" ),
130+ "custom_meta" : "custom_value" ,
131+ "routing_key" : "celery" ,
132+ }
133+ span = trace ._Span ("name" , mock .Mock (spec = trace_api .SpanContext ))
134+ utils .set_attributes_from_context (span , context )
135+ self .assertEqual (
136+ span .attributes .get ("celery.timelimit" ), ("" , "later" )
137+ )
138+
99139 def test_set_attributes_from_context_empty_keys (self ):
100140 # it should not extract empty keys
101141 context = {
0 commit comments