@@ -111,6 +111,19 @@ def test_traced_client(self):
111111 request_id = "fdcdcab1-ae5c-489e-9c33-4637c5dda355"
112112 self .assert_span ("EC2" , "DescribeInstances" , request_id = request_id )
113113
114+ @mock_ec2
115+ def test_no_op_tracer_provider_ec2 (self ):
116+ BotocoreInstrumentor ().uninstrument ()
117+ BotocoreInstrumentor ().instrument (
118+ tracer_provider = trace_api .NoOpTracerProvider ()
119+ )
120+
121+ ec2 = self ._make_client ("ec2" )
122+ ec2 .describe_instances ()
123+
124+ spans_list = self .memory_exporter .get_finished_spans ()
125+ self .assertEqual (len (spans_list ), 0 )
126+
114127 @mock_ec2
115128 def test_not_recording (self ):
116129 mock_tracer = Mock ()
@@ -155,7 +168,20 @@ def test_s3_client(self):
155168
156169 s3 .list_buckets ()
157170 self .assert_span ("S3" , "ListBuckets" )
171+
172+ @mock_s3
173+ def test_no_op_tracer_provider_s3 (self ):
174+ BotocoreInstrumentor ().uninstrument ()
175+ BotocoreInstrumentor ().instrument (
176+ tracer_provider = trace_api .NoOpTracerProvider ()
177+ )
178+
179+ s3 = self ._make_client ("s3" )
180+ s3 .list_buckets ()
158181
182+ spans_list = self .memory_exporter .get_finished_spans ()
183+ self .assertEqual (len (spans_list ), 0 )
184+
159185 @mock_s3
160186 def test_s3_put (self ):
161187 s3 = self ._make_client ("s3" )
@@ -184,6 +210,19 @@ def test_sqs_client(self):
184210 "SQS" , "ListQueues" , request_id = _REQUEST_ID_REGEX_MATCH
185211 )
186212
213+ @mock_sqs
214+ def test_no_op_tracer_provider_sqs (self ):
215+ BotocoreInstrumentor ().uninstrument ()
216+ BotocoreInstrumentor ().instrument (
217+ tracer_provider = trace_api .NoOpTracerProvider ()
218+ )
219+
220+ sqs = self ._make_client ("sqs" )
221+ sqs .list_queues ()
222+
223+ spans_list = self .memory_exporter .get_finished_spans ()
224+ self .assertEqual (len (spans_list ), 0 )
225+
187226 @mock_sqs
188227 def test_sqs_send_message (self ):
189228 sqs = self ._make_client ("sqs" )
@@ -211,6 +250,19 @@ def test_kinesis_client(self):
211250
212251 kinesis .list_streams ()
213252 self .assert_span ("Kinesis" , "ListStreams" )
253+
254+ @mock_kinesis
255+ def test_no_op_tracer_provider_kinesis (self ):
256+ BotocoreInstrumentor ().uninstrument ()
257+ BotocoreInstrumentor ().instrument (
258+ tracer_provider = trace_api .NoOpTracerProvider ()
259+ )
260+
261+ kinesis = self ._make_client ("kinesis" )
262+ kinesis .list_streams ()
263+
264+ spans_list = self .memory_exporter .get_finished_spans ()
265+ self .assertEqual (len (spans_list ), 0 )
214266
215267 @mock_kinesis
216268 def test_unpatch (self ):
@@ -264,6 +316,19 @@ def test_kms_client(self):
264316 self ._default_span_attributes ("KMS" , "ListKeys" ), span .attributes
265317 )
266318
319+ @mock_kms
320+ def test_no_op_tracer_provider_kms (self ):
321+ BotocoreInstrumentor ().uninstrument ()
322+ BotocoreInstrumentor ().instrument (
323+ tracer_provider = trace_api .NoOpTracerProvider ()
324+ )
325+
326+ kms = self ._make_client ("kms" )
327+ kms .list_keys (Limit = 21 )
328+
329+ spans_list = self .memory_exporter .get_finished_spans ()
330+ self .assertEqual (len (spans_list ), 0 )
331+
267332 @mock_sts
268333 def test_sts_client (self ):
269334 sts = self ._make_client ("sts" )
@@ -276,6 +341,19 @@ def test_sts_client(self):
276341 # check for exact attribute set to make sure not to leak any sts secrets
277342 self .assertEqual (expected , span .attributes )
278343
344+ @mock_sts
345+ def test_no_op_tracer_provider_sts (self ):
346+ BotocoreInstrumentor ().uninstrument ()
347+ BotocoreInstrumentor ().instrument (
348+ tracer_provider = trace_api .NoOpTracerProvider ()
349+ )
350+
351+ sts = self ._make_client ("sts" )
352+ sts .get_caller_identity ()
353+
354+ spans_list = self .memory_exporter .get_finished_spans ()
355+ self .assertEqual (len (spans_list ), 0 )
356+
279357 @mock_ec2
280358 def test_propagator_injects_into_request (self ):
281359 headers = {}
@@ -343,6 +421,19 @@ def test_suppress_instrumentation_xray_client(self):
343421 xray_client .put_trace_segments (TraceSegmentDocuments = ["str2" ])
344422 self .assertEqual (0 , len (self .get_finished_spans ()))
345423
424+ @mock_xray
425+ def test_no_op_tracer_provider_xray (self ):
426+ BotocoreInstrumentor ().uninstrument ()
427+ BotocoreInstrumentor ().instrument (
428+ tracer_provider = trace_api .NoOpTracerProvider ()
429+ )
430+
431+ xray_client = self ._make_client ("xray" )
432+ xray_client .put_trace_segments (TraceSegmentDocuments = ["str1" ])
433+
434+ spans_list = self .memory_exporter .get_finished_spans ()
435+ self .assertEqual (len (spans_list ), 0 )
436+
346437 @mock_xray
347438 def test_suppress_http_instrumentation_xray_client (self ):
348439 xray_client = self ._make_client ("xray" )
0 commit comments