@@ -73,7 +73,7 @@ def tearDown(self):
73
73
"OTEL_EXPORTER_OTLP_METRIC_ENDPOINT" : "collector:55680" ,
74
74
"OTEL_EXPORTER_OTLP_METRIC_CERTIFICATE" : THIS_DIR
75
75
+ "/fixtures/test.cert" ,
76
- "OTEL_EXPORTER_OTLP_METRIC_HEADERS" : "key1: value1; key2: value2" ,
76
+ "OTEL_EXPORTER_OTLP_METRIC_HEADERS" : "key1= value1, key2= value2" ,
77
77
"OTEL_EXPORTER_OTLP_METRIC_TIMEOUT" : "10" ,
78
78
},
79
79
)
@@ -85,7 +85,7 @@ def test_env_variables(self, mock_exporter_mixin):
85
85
_ , kwargs = mock_exporter_mixin .call_args_list [0 ]
86
86
87
87
self .assertEqual (kwargs ["endpoint" ], "collector:55680" )
88
- self .assertEqual (kwargs ["headers" ], "key1: value1; key2: value2" )
88
+ self .assertEqual (kwargs ["headers" ], "key1= value1, key2= value2" )
89
89
self .assertEqual (kwargs ["timeout" ], 10 )
90
90
self .assertIsNotNone (kwargs ["credentials" ])
91
91
self .assertIsInstance (kwargs ["credentials" ], ChannelCredentials )
@@ -102,6 +102,35 @@ def test_no_credentials_error(
102
102
OTLPMetricsExporter (insecure = False )
103
103
self .assertTrue (mock_ssl_channel .called )
104
104
105
+ @patch .dict (
106
+ "os.environ" ,
107
+ {"OTEL_EXPORTER_OTLP_METRIC_HEADERS" : "key1=value1,key2=value2" },
108
+ )
109
+ @patch ("opentelemetry.exporter.otlp.exporter.ssl_channel_credentials" )
110
+ @patch ("opentelemetry.exporter.otlp.exporter.secure_channel" )
111
+ # pylint: disable=unused-argument
112
+ def test_otlp_headers_from_env (self , mock_ssl_channel , mock_secure ):
113
+ exporter = OTLPMetricsExporter ()
114
+ # pylint: disable=protected-access
115
+ self .assertEqual (
116
+ exporter ._headers , (("key1" , "value1" ), ("key2" , "value2" )),
117
+ )
118
+ exporter = OTLPMetricsExporter (
119
+ headers = (("key3" , "value3" ), ("key4" , "value4" ))
120
+ )
121
+ # pylint: disable=protected-access
122
+ self .assertEqual (
123
+ exporter ._headers , (("key3" , "value3" ), ("key4" , "value4" )),
124
+ )
125
+
126
+ @patch ("opentelemetry.exporter.otlp.exporter.ssl_channel_credentials" )
127
+ @patch ("opentelemetry.exporter.otlp.exporter.secure_channel" )
128
+ # pylint: disable=unused-argument
129
+ def test_otlp_headers (self , mock_ssl_channel , mock_secure ):
130
+ exporter = OTLPMetricsExporter ()
131
+ # pylint: disable=protected-access
132
+ self .assertIsNone (exporter ._headers , None )
133
+
105
134
@patch ("opentelemetry.sdk.metrics.export.aggregate.time_ns" )
106
135
def test_translate_counter_export_record (self , mock_time_ns ):
107
136
mock_time_ns .configure_mock (** {"return_value" : 1 })
0 commit comments