4444from opentelemetry .exporter .otlp .proto .grpc ._log_exporter import OTLPLogExporter as OTLPGrpcLogExporter
4545from opentelemetry .exporter .otlp .proto .grpc .metric_exporter import OTLPMetricExporter as OTLPGrpcOTLPMetricExporter
4646from opentelemetry .exporter .otlp .proto .grpc .trace_exporter import OTLPSpanExporter as OTLPGrpcSpanExporter
47+ from opentelemetry .exporter .otlp .proto .http import Compression
4748from opentelemetry .exporter .otlp .proto .http ._log_exporter import OTLPLogExporter
4849from opentelemetry .exporter .otlp .proto .http .metric_exporter import OTLPMetricExporter as OTLPHttpOTLPMetricExporter
4950from opentelemetry .exporter .otlp .proto .http .trace_exporter import OTLPSpanExporter
@@ -372,18 +373,29 @@ def test_customize_span_exporter_sigv4(self):
372373 bad_configs .append (config )
373374
374375 for config in good_configs :
375- self .customize_exporter_test (config , OTLPSpanExporter (), _customize_span_exporter , OTLPSpanExporter , True )
376+ self .customize_exporter_test (
377+ config ,
378+ _customize_span_exporter ,
379+ OTLPSpanExporter ,
380+ AwsAuthSession ,
381+ Compression .NoCompression ,
382+ OTLPSpanExporter (),
383+ Resource .get_empty (),
384+ )
385+
376386 for config in bad_configs :
377- self .customize_exporter_test (config , OTLPSpanExporter (), _customize_span_exporter , OTLPSpanExporter , False )
378-
379- self .customize_exporter_test (
380- {
381- OTEL_EXPORTER_OTLP_TRACES_ENDPOINT : "https://xray.us-east-1.amazonaws.com/v1/traces" ,
382- },
383- OTLPGrpcSpanExporter (),
384- _customize_span_exporter ,
385- OTLPGrpcSpanExporter ,
386- False ,
387+ self .customize_exporter_test (
388+ config ,
389+ _customize_span_exporter ,
390+ OTLPSpanExporter ,
391+ Session ,
392+ Compression .NoCompression ,
393+ OTLPSpanExporter (),
394+ Resource .get_empty (),
395+ )
396+
397+ self .assertIsInstance (
398+ _customize_span_exporter (OTLPGrpcSpanExporter (), Resource .get_empty ()), OTLPGrpcSpanExporter
387399 )
388400
389401 def test_customize_logs_exporter_sigv4 (self ):
@@ -415,7 +427,6 @@ def test_customize_logs_exporter_sigv4(self):
415427 "https://logs.amazonaws.com/v1/logs" ,
416428 "https://logs.us-east-1.amazon.com/v1/logs" ,
417429 "https://logs.us-east-1.aws.com/v1/logs" ,
418- "https://logs.US-EAST-1.amazonaws.com/v1/logs" ,
419430 "https://logs.us_east_1.amazonaws.com/v1/logs" ,
420431 "https://logs.us.east.1.amazonaws.com/v1/logs" ,
421432 "https://logs..amazonaws.com/v1/logs" ,
@@ -430,8 +441,6 @@ def test_customize_logs_exporter_sigv4(self):
430441 "https://logs.us-east-1.amazonaws.com:443/v1/logs" ,
431442 "https:/logs.us-east-1.amazonaws.com/v1/logs" ,
432443 "https:://logs.us-east-1.amazonaws.com/v1/logs" ,
433- "https://LOGS.us-east-1.amazonaws.com/v1/logs" ,
434- "https://logs.us-east-1.amazonaws.com/V1/LOGS" ,
435444 "https://logs.us-east-1.amazonaws.com/v1/logging" ,
436445 "https://logs.us-east-1.amazonaws.com/v1/cloudwatchlogs" ,
437446 "https://logs.us-east-1.amazonaws.com/v1/cwlogs" ,
@@ -472,20 +481,16 @@ def test_customize_logs_exporter_sigv4(self):
472481 bad_configs .append (config )
473482
474483 for config in good_configs :
475- self .customize_exporter_test (config , OTLPLogExporter (), _customize_logs_exporter , OTLPLogExporter , True )
484+ self .customize_exporter_test (
485+ config , _customize_logs_exporter , OTLPLogExporter , AwsAuthSession , Compression .Gzip , OTLPLogExporter ()
486+ )
487+
476488 for config in bad_configs :
477- self .customize_exporter_test (config , OTLPLogExporter (), _customize_logs_exporter , OTLPLogExporter , False )
489+ self .customize_exporter_test (
490+ config , _customize_logs_exporter , OTLPLogExporter , Session , Compression .NoCompression , OTLPLogExporter ()
491+ )
478492
479- self .customize_exporter_test (
480- {
481- OTEL_EXPORTER_OTLP_LOGS_ENDPOINT : "https://logs.us-east-1.amazonaws.com/v1/logs" ,
482- OTEL_EXPORTER_OTLP_LOGS_HEADERS : "x-aws-log-group=test,x-aws-log-stream=test" ,
483- },
484- OTLPGrpcLogExporter (),
485- _customize_logs_exporter ,
486- OTLPGrpcLogExporter ,
487- False ,
488- )
493+ self .assertIsInstance (_customize_logs_exporter (OTLPGrpcLogExporter ()), OTLPGrpcLogExporter )
489494
490495 def test_init_logging (self ):
491496 captured_exporter = None
@@ -497,10 +502,9 @@ def capture_exporter(*args, **kwargs):
497502 return result
498503
499504 test_cases = [
500- [{"otlp" : OTLPLogExporter }, [OTLPLogExporter ]],
501- [{"otlp" : OTLPLogExporter , "grpc" : OTLPGrpcLogExporter }, [OTLPLogExporter , OTLPGrpcLogExporter ]],
502- [{}, [OTLPLogExporter ]],
503- [{"grpc" : OTLPGrpcLogExporter }, [OTLPGrpcLogExporter ]],
505+ [{"otlp" : OTLPLogExporter }, OTLPLogExporter ],
506+ [{}, OTLPLogExporter ],
507+ [{"grpc" : OTLPGrpcLogExporter }, OTLPGrpcLogExporter ],
504508 ]
505509
506510 os .environ [OTEL_EXPORTER_OTLP_LOGS_ENDPOINT ] = "https://logs.us-east-1.amazonaws.com/v1/logs"
@@ -511,20 +515,14 @@ def capture_exporter(*args, **kwargs):
511515
512516 mock_customize_logs_exporter .side_effect = capture_exporter
513517
514- for i in range (len (test_cases )):
515- exporters_dict = test_cases [i ][0 ]
516- expected_exporters = test_cases [i ][1 ]
517-
518- _init_logging (exporters_dict , Resource .get_empty ())
519-
520- args_list = mock_customize_logs_exporter .call_args_list
518+ for tc in test_cases :
519+ exporter_dict = tc [0 ]
520+ expected_exporter = tc [1 ]
521+ _init_logging (exporter_dict , Resource .get_empty ())
521522
522- self .assertEquals ( len ( expected_exporters ), len ( args_list ) )
523+ self .assertIsInstance ( captured_exporter , expected_exporter )
523524
524- for j in range (len (expected_exporters )):
525- self .assertIsInstance (args_list [j ].args [0 ], expected_exporters [j ])
526-
527- mock_customize_logs_exporter .reset_mock ()
525+ os .environ .pop (OTEL_EXPORTER_OTLP_LOGS_ENDPOINT )
528526
529527 def test_customize_span_processors (self ):
530528 mock_tracer_provider : TracerProvider = MagicMock ()
@@ -666,20 +664,16 @@ def test_customize_metric_exporter(self):
666664 os .environ .pop ("OTEL_METRIC_EXPORT_INTERVAL" , None )
667665
668666 def customize_exporter_test (
669- self , config , default_exporter , executor , expected_exporter_type , has_aws_authenticator
667+ self , config , executor , expected_exporter_type , expected_session , expected_compression , * args
670668 ):
671669 for key , value in config .items ():
672670 os .environ [key ] = value
673671
674672 try :
675- result = executor (default_exporter , Resource . get_empty () )
673+ result = executor (* args )
676674 self .assertIsInstance (result , expected_exporter_type )
677-
678- if has_aws_authenticator :
679- self .assertIsInstance (result ._session , AwsAuthSession )
680- else :
681- self .assertTrue (not hasattr (result , "_session" ) or isinstance (result ._session , Session ))
682-
675+ self .assertIsInstance (result ._session , expected_session )
676+ self .assertEqual (result ._compression , expected_compression )
683677 finally :
684678 for key in config .keys ():
685679 os .environ .pop (key , None )
0 commit comments