|
2 | 2 | import responses |
3 | 3 | from opentelemetry import trace |
4 | 4 | from opentelemetry.context import attach, detach |
| 5 | +from opentelemetry.exporter.otlp.proto.http import __version__ |
5 | 6 | from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter |
6 | 7 | from opentelemetry.propagate import get_global_textmap, set_global_textmap |
7 | 8 | from opentelemetry.sdk.trace import TracerProvider |
|
18 | 19 |
|
19 | 20 | from sentry_sdk.integrations.otlp import OTLPIntegration, SentryOTLPPropagator |
20 | 21 | from sentry_sdk.scope import get_external_propagation_context |
| 22 | +from sentry_sdk.utils import parse_version |
| 23 | + |
| 24 | +OTLP_EXPORTER_VERSION = parse_version(__version__) |
21 | 25 |
|
22 | 26 | original_propagator = get_global_textmap() |
23 | 27 |
|
@@ -78,6 +82,15 @@ def test_sets_new_tracer_provider_with_otlp_exporter(sentry_init): |
78 | 82 | exporter._endpoint |
79 | 83 | == "https://bla.ingest.sentry.io/api/12312012/integration/otlp/v1/traces/" |
80 | 84 | ) |
| 85 | + |
| 86 | + if OTLP_EXPORTER_VERSION is not None and OTLP_EXPORTER_VERSION >= (1, 45): |
| 87 | + assert "x-sentry-auth" in exporter._client._headers |
| 88 | + assert ( |
| 89 | + "Sentry sentry_key=mysecret, sentry_version=7, sentry_client=sentry.python/" |
| 90 | + in exporter._client._headers["x-sentry-auth"] |
| 91 | + ) |
| 92 | + return |
| 93 | + |
81 | 94 | assert "X-Sentry-Auth" in exporter._headers |
82 | 95 | assert ( |
83 | 96 | "Sentry sentry_key=mysecret, sentry_version=7, sentry_client=sentry.python/" |
@@ -107,6 +120,14 @@ def test_uses_existing_tracer_provider_with_otlp_exporter(sentry_init): |
107 | 120 | exporter._endpoint |
108 | 121 | == "https://bla.ingest.sentry.io/api/12312012/integration/otlp/v1/traces/" |
109 | 122 | ) |
| 123 | + if OTLP_EXPORTER_VERSION is not None and OTLP_EXPORTER_VERSION >= (1, 45): |
| 124 | + assert "x-sentry-auth" in exporter._client._headers |
| 125 | + assert ( |
| 126 | + "Sentry sentry_key=mysecret, sentry_version=7, sentry_client=sentry.python/" |
| 127 | + in exporter._client._headers["x-sentry-auth"] |
| 128 | + ) |
| 129 | + return |
| 130 | + |
110 | 131 | assert "X-Sentry-Auth" in exporter._headers |
111 | 132 | assert ( |
112 | 133 | "Sentry sentry_key=mysecret, sentry_version=7, sentry_client=sentry.python/" |
@@ -253,6 +274,14 @@ def test_collector_url_sets_endpoint(sentry_init): |
253 | 274 | exporter = span_processor.span_exporter |
254 | 275 | assert isinstance(exporter, OTLPSpanExporter) |
255 | 276 | assert exporter._endpoint == "https://my-collector.example.com/v1/traces" |
| 277 | + |
| 278 | + if OTLP_EXPORTER_VERSION is not None and OTLP_EXPORTER_VERSION >= (1, 45): |
| 279 | + assert ( |
| 280 | + exporter._client._headers is None |
| 281 | + or "x-sentry-auth" not in exporter._client._headers |
| 282 | + ) |
| 283 | + return |
| 284 | + |
256 | 285 | assert exporter._headers is None or "X-Sentry-Auth" not in exporter._headers |
257 | 286 |
|
258 | 287 |
|
@@ -294,6 +323,11 @@ def test_collector_url_none_falls_back_to_dsn(sentry_init): |
294 | 323 | exporter._endpoint |
295 | 324 | == "https://bla.ingest.sentry.io/api/12312012/integration/otlp/v1/traces/" |
296 | 325 | ) |
| 326 | + |
| 327 | + if OTLP_EXPORTER_VERSION is not None and OTLP_EXPORTER_VERSION >= (1, 45): |
| 328 | + assert "x-sentry-auth" in exporter._client._headers |
| 329 | + return |
| 330 | + |
297 | 331 | assert "X-Sentry-Auth" in exporter._headers |
298 | 332 |
|
299 | 333 |
|
|
0 commit comments