Skip to content

Commit 1a592f9

Browse files
committed
test(auto-instrumentation): fix diagnostic test lint
1 parent 4e5b680 commit 1a592f9

2 files changed

Lines changed: 60 additions & 102 deletions

File tree

  • opentelemetry-instrumentation
    • src/opentelemetry/instrumentation/auto_instrumentation
    • tests/auto_instrumentation

opentelemetry-instrumentation/src/opentelemetry/instrumentation/auto_instrumentation/_load.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,7 @@ def _load_distro() -> BaseDistro:
104104
entry_point.name,
105105
)
106106
continue
107-
_debug(
108-
"Distribution %s will be configured", entry_point.name
109-
)
107+
_debug("Distribution %s will be configured", entry_point.name)
110108
return distro
111109
except Exception as exc: # pylint: disable=broad-except
112110
_logger.exception(
@@ -132,9 +130,7 @@ def _load_instrumentors(distro):
132130
break
133131

134132
if entry_point.name in package_to_exclude:
135-
_debug(
136-
"Instrumentation skipped for library %s", entry_point.name
137-
)
133+
_debug("Instrumentation skipped for library %s", entry_point.name)
138134
continue
139135

140136
try:

opentelemetry-instrumentation/tests/auto_instrumentation/test_load.py

Lines changed: 58 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)