|
1 | 1 | import datetime |
2 | 2 | import logging |
| 3 | +from unittest.mock import MagicMock |
3 | 4 |
|
4 | 5 | import freezegun |
5 | 6 | import pytest |
|
8 | 9 | from corva import Logger |
9 | 10 | from corva.configuration import SETTINGS |
10 | 11 | from corva.handlers import scheduled, stream, task |
| 12 | +from corva.logger import LoggingContext |
11 | 13 | from corva.models.context import CorvaContext |
12 | 14 | from corva.models.scheduled.raw import RawScheduledDataTimeEvent, RawScheduledEvent |
13 | 15 | from corva.models.scheduled.scheduler_type import SchedulerType |
@@ -326,3 +328,27 @@ def app(event, api): |
326 | 328 |
|
327 | 329 | assert 'The app failed to execute.' in captured.out |
328 | 330 | assert 'The app failed to execute.' in captured.err |
| 331 | + |
| 332 | + |
| 333 | +@pytest.mark.parametrize("handler_cls_name", ("opentelemetry", "otel")) |
| 334 | +def test__otel_handler_passed_to_logging_context__success(monkeypatch, handler_cls_name): |
| 335 | + |
| 336 | + otel_handler = MagicMock() |
| 337 | + otel_handler.__class__.__name__ = handler_cls_name |
| 338 | + |
| 339 | + # Attach to the root logger |
| 340 | + logging.getLogger().addHandler(otel_handler) |
| 341 | + |
| 342 | + monkeypatch.setenv("OTEL_SDK_DISABLED", "false") |
| 343 | + |
| 344 | + with LoggingContext( |
| 345 | + aws_request_id=MagicMock(), |
| 346 | + asset_id=MagicMock(), |
| 347 | + app_connection_id=MagicMock(), |
| 348 | + handler=MagicMock(), |
| 349 | + user_handler=MagicMock(), |
| 350 | + logger=MagicMock(), |
| 351 | + ) as context: |
| 352 | + assert otel_handler in context.logger.handlers |
| 353 | + |
| 354 | + logging.getLogger().removeHandler(otel_handler) |
0 commit comments