14
14
import unittest
15
15
from unittest .mock import Mock , call , patch
16
16
17
+ from opentelemetry .sdk ._logs import LoggingHandler
17
18
from opentelemetry .sdk .resources import Resource
18
19
19
20
from azure .core .tracing .ext .opentelemetry_span import OpenTelemetrySpan
@@ -351,6 +352,7 @@ def test_setup_logging(
351
352
logging_handler_init_mock = Mock ()
352
353
logging_handler_mock .return_value = logging_handler_init_mock
353
354
logger_mock = Mock ()
355
+ logger_mock .handlers = []
354
356
get_logger_mock .return_value = logger_mock
355
357
356
358
configurations = {
@@ -373,6 +375,59 @@ def test_setup_logging(
373
375
elp_mock .assert_called_once_with (lp_init_mock )
374
376
set_elp_mock .assert_called_once_with (elp_init_mock )
375
377
378
+ @patch (
379
+ "azure.monitor.opentelemetry._configure.getLogger" ,
380
+ )
381
+ @patch (
382
+ "azure.monitor.opentelemetry._configure.BatchLogRecordProcessor" ,
383
+ )
384
+ @patch (
385
+ "azure.monitor.opentelemetry._configure.AzureMonitorLogExporter" ,
386
+ )
387
+ @patch (
388
+ "azure.monitor.opentelemetry._configure.set_logger_provider" ,
389
+ )
390
+ @patch (
391
+ "azure.monitor.opentelemetry._configure.LoggerProvider" ,
392
+ autospec = True ,
393
+ )
394
+ def test_setup_logging_duplicate_logger (
395
+ self ,
396
+ lp_mock ,
397
+ set_logger_provider_mock ,
398
+ log_exporter_mock ,
399
+ blrp_mock ,
400
+ get_logger_mock ,
401
+ ):
402
+ lp_init_mock = Mock ()
403
+ lp_mock .return_value = lp_init_mock
404
+ log_exp_init_mock = Mock ()
405
+ log_exporter_mock .return_value = log_exp_init_mock
406
+ blrp_init_mock = Mock ()
407
+ blrp_mock .return_value = blrp_init_mock
408
+ logging_handler_init_mock = Mock (spec = LoggingHandler )
409
+ logger_mock = Mock ()
410
+ logger_mock .handlers = [logging_handler_init_mock ]
411
+ get_logger_mock .return_value = logger_mock
412
+
413
+ configurations = {
414
+ "connection_string" : "test_cs" ,
415
+ "logger_name" : "test" ,
416
+ "resource" : TEST_RESOURCE ,
417
+ }
418
+ _setup_logging (configurations )
419
+
420
+ lp_mock .assert_called_once_with (resource = TEST_RESOURCE )
421
+ set_logger_provider_mock .assert_called_once_with (lp_init_mock )
422
+ log_exporter_mock .assert_called_once_with (** configurations )
423
+ blrp_mock .assert_called_once_with (
424
+ log_exp_init_mock ,
425
+ )
426
+ lp_init_mock .add_log_record_processor .assert_called_once_with (blrp_init_mock )
427
+ # logging_handler_mock.assert_not_called()
428
+ get_logger_mock .assert_called_once_with ("test" )
429
+ logger_mock .addHandler .assert_not_called ()
430
+
376
431
@patch (
377
432
"azure.monitor.opentelemetry._configure.PeriodicExportingMetricReader" ,
378
433
)
0 commit comments