@@ -198,104 +198,66 @@ def _instrumentation_failed_to_load_call(entry_point, dependency_conflict):
198198 "Skipping instrumentation %s: %s" , entry_point , dependency_conflict
199199 )
200200
201- @patch .dict ("os.environ" , {"OTEL_LOG_LEVEL" : "debug" }, clear = True )
202- @patch ("opentelemetry.instrumentation.auto_instrumentation._load._logger" )
203- @patch ("opentelemetry.instrumentation.auto_instrumentation._load.stderr" )
204- def test_writes_diagnostic_debug_output (
205- self , stderr_mock , logger_mock
206- ):
207- logger_mock .isEnabledFor .return_value = True
208- logger_mock .hasHandlers .return_value = False
209-
210- _load ._debug ("Instrumented %s" , "requests" )
211-
212- logger_mock .debug .assert_called_once_with (
213- "Instrumented %s" , "requests"
214- )
215- stderr_mock .write .assert_called_once_with (
216- "DEBUG:"
217- "opentelemetry.instrumentation.auto_instrumentation._load:"
218- "Instrumented 'requests'\n "
219- )
220- stderr_mock .flush .assert_called_once ()
221-
222- @patch .dict ("os.environ" , {"OTEL_LOG_LEVEL" : "trace" }, clear = True )
223- @patch ("opentelemetry.instrumentation.auto_instrumentation._load._logger" )
224- @patch ("opentelemetry.instrumentation.auto_instrumentation._load.stderr" )
225- def test_writes_diagnostic_trace_output (self , stderr_mock , logger_mock ):
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- @patch .dict ("os.environ" , {"OTEL_LOG_LEVEL" : "debug" }, clear = True )
242- @patch ("opentelemetry.instrumentation.auto_instrumentation._load._logger" )
243- @patch ("opentelemetry.instrumentation.auto_instrumentation._load.stderr" )
244- def test_does_not_write_diagnostic_when_logger_handles_debug (
245- self , stderr_mock , logger_mock
246- ):
247- logger_mock .isEnabledFor .return_value = True
248- logger_mock .hasHandlers .return_value = True
249-
250- _load ._debug ("Instrumented %s" , "requests" )
251-
252- logger_mock .debug .assert_called_once_with (
253- "Instrumented %s" , "requests"
254- )
255- stderr_mock .write .assert_not_called ()
256- stderr_mock .flush .assert_not_called ()
257-
258- @patch .dict ("os.environ" , {"OTEL_LOG_LEVEL" : "info" }, clear = True )
259- @patch ("opentelemetry.instrumentation.auto_instrumentation._load._logger" )
260- @patch ("opentelemetry.instrumentation.auto_instrumentation._load.stderr" )
261- def test_does_not_write_diagnostic_non_debug_output (
262- self , stderr_mock , logger_mock
263- ):
264- _load ._debug ("Instrumented %s" , "requests" )
265-
266- logger_mock .debug .assert_called_once_with (
267- "Instrumented %s" , "requests"
268- )
269- stderr_mock .write .assert_not_called ()
270- stderr_mock .flush .assert_not_called ()
271-
272- @patch .dict ("os.environ" , {"OTEL_LOG_LEVEL" : "debug2" }, clear = True )
273- @patch ("opentelemetry.instrumentation.auto_instrumentation._load._logger" )
274- @patch ("opentelemetry.instrumentation.auto_instrumentation._load.stderr" )
275- def test_does_not_write_numbered_debug_output (
276- self , stderr_mock , logger_mock
277- ):
278- _load ._debug ("Instrumented %s" , "requests" )
279-
280- logger_mock .debug .assert_called_once_with (
281- "Instrumented %s" , "requests"
201+ def test_writes_diagnostic_output_for_debug_levels (self ):
202+ for log_level in ("debug" , "trace" ):
203+ with (
204+ self .subTest (log_level = log_level ),
205+ patch .dict (
206+ "os.environ" , {"OTEL_LOG_LEVEL" : log_level }, clear = True
207+ ),
208+ patch (
209+ "opentelemetry.instrumentation.auto_instrumentation._load._logger"
210+ ) as logger_mock ,
211+ patch (
212+ "opentelemetry.instrumentation.auto_instrumentation._load.stderr"
213+ ) as stderr_mock ,
214+ ):
215+ logger_mock .isEnabledFor .return_value = True
216+ logger_mock .hasHandlers .return_value = False
217+
218+ _load ._debug ("Instrumented %s" , "requests" )
219+
220+ logger_mock .debug .assert_called_once_with (
221+ "Instrumented %s" , "requests"
222+ )
223+ stderr_mock .write .assert_called_once_with (
224+ "DEBUG:"
225+ "opentelemetry.instrumentation.auto_instrumentation._load:"
226+ "Instrumented 'requests'\n "
227+ )
228+ stderr_mock .flush .assert_called_once ()
229+
230+ def test_does_not_write_diagnostic_output (self ):
231+ cases = (
232+ ("debug" , True ),
233+ ("info" , False ),
234+ ("debug2" , False ),
235+ ("debugger" , False ),
282236 )
283- stderr_mock .write .assert_not_called ()
284- stderr_mock .flush .assert_not_called ()
285-
286- @patch .dict ("os.environ" , {"OTEL_LOG_LEVEL" : "debugger" }, clear = True )
287- @patch ("opentelemetry.instrumentation.auto_instrumentation._load._logger" )
288- @patch ("opentelemetry.instrumentation.auto_instrumentation._load.stderr" )
289- def test_does_not_prefix_match_diagnostic_debug_output (
290- self , stderr_mock , logger_mock
291- ):
292- _load ._debug ("Instrumented %s" , "requests" )
293237
294- logger_mock .debug .assert_called_once_with (
295- "Instrumented %s" , "requests"
296- )
297- stderr_mock .write .assert_not_called ()
298- stderr_mock .flush .assert_not_called ()
238+ for log_level , logger_has_handlers in cases :
239+ with (
240+ self .subTest (log_level = log_level ),
241+ patch .dict (
242+ "os.environ" , {"OTEL_LOG_LEVEL" : log_level }, clear = True
243+ ),
244+ patch (
245+ "opentelemetry.instrumentation.auto_instrumentation._load._logger"
246+ ) as logger_mock ,
247+ patch (
248+ "opentelemetry.instrumentation.auto_instrumentation._load.stderr"
249+ ) as stderr_mock ,
250+ ):
251+ logger_mock .isEnabledFor .return_value = True
252+ logger_mock .hasHandlers .return_value = logger_has_handlers
253+
254+ _load ._debug ("Instrumented %s" , "requests" )
255+
256+ logger_mock .debug .assert_called_once_with (
257+ "Instrumented %s" , "requests"
258+ )
259+ stderr_mock .write .assert_not_called ()
260+ stderr_mock .flush .assert_not_called ()
299261
300262 @patch .dict (
301263 "os.environ" ,
0 commit comments