@@ -209,104 +209,66 @@ def _instrumentation_failed_to_load_call(entry_point, dependency_conflict):
209209 "Skipping instrumentation %s: %s" , entry_point , dependency_conflict
210210 )
211211
212- @patch .dict ("os.environ" , {"OTEL_LOG_LEVEL" : "debug" }, clear = True )
213- @patch ("opentelemetry.instrumentation.auto_instrumentation._load._logger" )
214- @patch ("opentelemetry.instrumentation.auto_instrumentation._load.stderr" )
215- def test_writes_diagnostic_debug_output (
216- self , stderr_mock , logger_mock
217- ):
218- logger_mock .isEnabledFor .return_value = True
219- logger_mock .hasHandlers .return_value = False
220-
221- _load ._debug ("Instrumented %s" , "requests" )
222-
223- logger_mock .debug .assert_called_once_with (
224- "Instrumented %s" , "requests"
225- )
226- stderr_mock .write .assert_called_once_with (
227- "DEBUG:"
228- "opentelemetry.instrumentation.auto_instrumentation._load:"
229- "Instrumented 'requests'\n "
230- )
231- stderr_mock .flush .assert_called_once ()
232-
233- @patch .dict ("os.environ" , {"OTEL_LOG_LEVEL" : "trace" }, clear = True )
234- @patch ("opentelemetry.instrumentation.auto_instrumentation._load._logger" )
235- @patch ("opentelemetry.instrumentation.auto_instrumentation._load.stderr" )
236- def test_writes_diagnostic_trace_output (self , stderr_mock , logger_mock ):
237- logger_mock .isEnabledFor .return_value = True
238- logger_mock .hasHandlers .return_value = False
239-
240- _load ._debug ("Instrumented %s" , "requests" )
241-
242- logger_mock .debug .assert_called_once_with (
243- "Instrumented %s" , "requests"
244- )
245- stderr_mock .write .assert_called_once_with (
246- "DEBUG:"
247- "opentelemetry.instrumentation.auto_instrumentation._load:"
248- "Instrumented 'requests'\n "
249- )
250- stderr_mock .flush .assert_called_once ()
251-
252- @patch .dict ("os.environ" , {"OTEL_LOG_LEVEL" : "debug" }, clear = True )
253- @patch ("opentelemetry.instrumentation.auto_instrumentation._load._logger" )
254- @patch ("opentelemetry.instrumentation.auto_instrumentation._load.stderr" )
255- def test_does_not_write_diagnostic_when_logger_handles_debug (
256- self , stderr_mock , logger_mock
257- ):
258- logger_mock .isEnabledFor .return_value = True
259- logger_mock .hasHandlers .return_value = True
260-
261- _load ._debug ("Instrumented %s" , "requests" )
262-
263- logger_mock .debug .assert_called_once_with (
264- "Instrumented %s" , "requests"
265- )
266- stderr_mock .write .assert_not_called ()
267- stderr_mock .flush .assert_not_called ()
268-
269- @patch .dict ("os.environ" , {"OTEL_LOG_LEVEL" : "info" }, clear = True )
270- @patch ("opentelemetry.instrumentation.auto_instrumentation._load._logger" )
271- @patch ("opentelemetry.instrumentation.auto_instrumentation._load.stderr" )
272- def test_does_not_write_diagnostic_non_debug_output (
273- self , stderr_mock , logger_mock
274- ):
275- _load ._debug ("Instrumented %s" , "requests" )
276-
277- logger_mock .debug .assert_called_once_with (
278- "Instrumented %s" , "requests"
279- )
280- stderr_mock .write .assert_not_called ()
281- stderr_mock .flush .assert_not_called ()
282-
283- @patch .dict ("os.environ" , {"OTEL_LOG_LEVEL" : "debug2" }, clear = True )
284- @patch ("opentelemetry.instrumentation.auto_instrumentation._load._logger" )
285- @patch ("opentelemetry.instrumentation.auto_instrumentation._load.stderr" )
286- def test_does_not_write_numbered_debug_output (
287- self , stderr_mock , logger_mock
288- ):
289- _load ._debug ("Instrumented %s" , "requests" )
290-
291- logger_mock .debug .assert_called_once_with (
292- "Instrumented %s" , "requests"
212+ def test_writes_diagnostic_output_for_debug_levels (self ):
213+ for log_level in ("debug" , "trace" ):
214+ with (
215+ self .subTest (log_level = log_level ),
216+ patch .dict (
217+ "os.environ" , {"OTEL_LOG_LEVEL" : log_level }, clear = True
218+ ),
219+ patch (
220+ "opentelemetry.instrumentation.auto_instrumentation._load._logger"
221+ ) as logger_mock ,
222+ patch (
223+ "opentelemetry.instrumentation.auto_instrumentation._load.stderr"
224+ ) as stderr_mock ,
225+ ):
226+ logger_mock .isEnabledFor .return_value = True
227+ logger_mock .hasHandlers .return_value = False
228+
229+ _load ._debug ("Instrumented %s" , "requests" )
230+
231+ logger_mock .debug .assert_called_once_with (
232+ "Instrumented %s" , "requests"
233+ )
234+ stderr_mock .write .assert_called_once_with (
235+ "DEBUG:"
236+ "opentelemetry.instrumentation.auto_instrumentation._load:"
237+ "Instrumented 'requests'\n "
238+ )
239+ stderr_mock .flush .assert_called_once ()
240+
241+ def test_does_not_write_diagnostic_output (self ):
242+ cases = (
243+ ("debug" , True ),
244+ ("info" , False ),
245+ ("debug2" , False ),
246+ ("debugger" , False ),
293247 )
294- stderr_mock .write .assert_not_called ()
295- stderr_mock .flush .assert_not_called ()
296-
297- @patch .dict ("os.environ" , {"OTEL_LOG_LEVEL" : "debugger" }, clear = True )
298- @patch ("opentelemetry.instrumentation.auto_instrumentation._load._logger" )
299- @patch ("opentelemetry.instrumentation.auto_instrumentation._load.stderr" )
300- def test_does_not_prefix_match_diagnostic_debug_output (
301- self , stderr_mock , logger_mock
302- ):
303- _load ._debug ("Instrumented %s" , "requests" )
304248
305- logger_mock .debug .assert_called_once_with (
306- "Instrumented %s" , "requests"
307- )
308- stderr_mock .write .assert_not_called ()
309- stderr_mock .flush .assert_not_called ()
249+ for log_level , logger_has_handlers in cases :
250+ with (
251+ self .subTest (log_level = log_level ),
252+ patch .dict (
253+ "os.environ" , {"OTEL_LOG_LEVEL" : log_level }, clear = True
254+ ),
255+ patch (
256+ "opentelemetry.instrumentation.auto_instrumentation._load._logger"
257+ ) as logger_mock ,
258+ patch (
259+ "opentelemetry.instrumentation.auto_instrumentation._load.stderr"
260+ ) as stderr_mock ,
261+ ):
262+ logger_mock .isEnabledFor .return_value = True
263+ logger_mock .hasHandlers .return_value = logger_has_handlers
264+
265+ _load ._debug ("Instrumented %s" , "requests" )
266+
267+ logger_mock .debug .assert_called_once_with (
268+ "Instrumented %s" , "requests"
269+ )
270+ stderr_mock .write .assert_not_called ()
271+ stderr_mock .flush .assert_not_called ()
310272
311273 @patch .dict (
312274 "os.environ" ,
0 commit comments