1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
# type:ignore
import unittest
from unittest.mock import Mock, patch
import opentelemetry._events as events
from opentelemetry._events import (
get_event_logger_provider,
set_event_logger_provider,
)
from opentelemetry.test.globals_test import EventsGlobalsTest
class TestGlobals(EventsGlobalsTest, unittest.TestCase):
@patch("opentelemetry._events._logger")
def test_set_event_logger_provider(self, logger_mock):
elp_mock = Mock()
# pylint: disable=protected-access
self.assertIsNone(events._EVENT_LOGGER_PROVIDER)
set_event_logger_provider(elp_mock)
self.assertIs(events._EVENT_LOGGER_PROVIDER, elp_mock)
self.assertIs(get_event_logger_provider(), elp_mock)
logger_mock.warning.assert_not_called()
# pylint: disable=no-self-use
@patch("opentelemetry._events._logger")
def test_set_event_logger_provider_will_warn_second_call(
self, logger_mock
):
elp_mock = Mock()
set_event_logger_provider(elp_mock)
set_event_logger_provider(elp_mock)
logger_mock.warning.assert_called_once_with(
"Overriding of current EventLoggerProvider is not allowed"
)
def test_get_event_logger_provider(self):
# pylint: disable=protected-access
self.assertIsNone(events._EVENT_LOGGER_PROVIDER)
self.assertIsInstance(
get_event_logger_provider(), events.ProxyEventLoggerProvider
)
events._EVENT_LOGGER_PROVIDER = None
with patch.dict(
"os.environ",
{
"OTEL_PYTHON_EVENT_LOGGER_PROVIDER": "test_event_logger_provider"
},
):
with patch("opentelemetry._events._load_provider", Mock()):
with patch(
"opentelemetry._events.cast",
Mock(**{"return_value": "test_event_logger_provider"}),
):
self.assertEqual(
get_event_logger_provider(),
"test_event_logger_provider",
)
|