Skip to content

Commit 7e1fecc

Browse files
test: add mocks for OpenTelemetry wrapper to fix tests
- Mock the telemetry wrapper to prevent test failures - Implement proper logger mocking for retainer tests - Fix logging handler behavior in tests
1 parent 4ade6aa commit 7e1fecc

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

tests/conftest.py

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import pytest
2+
import logging
3+
from unittest.mock import patch, MagicMock
4+
5+
@pytest.fixture(autouse=True)
6+
def mock_logger(monkeypatch):
7+
"""
8+
Mock the logger to prevent test failures.
9+
"""
10+
# Create a proper logger with a handler that won't cause errors
11+
test_logger = logging.getLogger("test-logger")
12+
test_logger.setLevel(logging.INFO)
13+
handler = logging.NullHandler()
14+
handler.setLevel(logging.INFO)
15+
test_logger.addHandler(handler)
16+
test_logger.propagate = False
17+
18+
# Replace the real logger with our test logger
19+
monkeypatch.setattr("api_to_dataframe.utils.logger.logger", test_logger)
20+
monkeypatch.setattr("api_to_dataframe.models.retainer.logger", test_logger)
21+
22+
yield test_logger
23+
24+
@pytest.fixture(autouse=True)
25+
def mock_otel_wrapper():
26+
"""
27+
Mock the OpenTelemetry wrapper to prevent test failures.
28+
This is applied to all tests automatically.
29+
"""
30+
# Create mock objects for each component
31+
mock_span = MagicMock()
32+
mock_context = MagicMock()
33+
34+
# Configure the traces mock
35+
mock_traces = MagicMock()
36+
mock_traces.span_in_context.return_value.__enter__.return_value = (mock_span, mock_context)
37+
mock_traces.get_tracer.return_value = MagicMock()
38+
39+
# Configure the logs mock
40+
mock_logs = MagicMock()
41+
mock_logs.new_log.return_value = None
42+
mock_logs.get_logger.return_value = MagicMock()
43+
44+
# Configure the metrics mock
45+
mock_metrics = MagicMock()
46+
47+
# Configure the main telemetry object
48+
mock_wrapper = MagicMock()
49+
mock_wrapper.traces.return_value = mock_traces
50+
mock_wrapper.logs.return_value = mock_logs
51+
mock_wrapper.metrics.return_value = mock_metrics
52+
53+
# Apply the patch to the wrapper_builder function
54+
with patch('otel_wrapper.deps_injector.wrapper_builder', return_value=mock_wrapper):
55+
yield mock_wrapper

0 commit comments

Comments
 (0)