Skip to content

Commit 10033d8

Browse files
committed
test(auto-instrumentation): fix diagnostic test lint
1 parent 49161f5 commit 10033d8

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
@@ -93,9 +93,7 @@ def _load_distro() -> BaseDistro:
9393
entry_point.name,
9494
)
9595
continue
96-
_debug(
97-
"Distribution %s will be configured", entry_point.name
98-
)
96+
_debug("Distribution %s will be configured", entry_point.name)
9997
return distro
10098
except Exception as exc: # pylint: disable=broad-except
10199
_logger.exception(
@@ -121,9 +119,7 @@ def _load_instrumentors(distro):
121119
break
122120

123121
if entry_point.name in package_to_exclude:
124-
_debug(
125-
"Instrumentation skipped for library %s", entry_point.name
126-
)
122+
_debug("Instrumentation skipped for library %s", entry_point.name)
127123
continue
128124

129125
try:

opentelemetry-instrumentation/tests/auto_instrumentation/test_load.py

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

Comments
 (0)