Skip to content

Commit 61a7354

Browse files
committed
fix tests
1 parent 654410a commit 61a7354

File tree

3 files changed

+34
-38
lines changed

3 files changed

+34
-38
lines changed

instrumentation/opentelemetry-instrumentation-asgi/tests/test_asgi_custom_headers.py

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -73,24 +73,21 @@ async def websocket_app_with_custom_headers(scope, receive, send):
7373
break
7474

7575

76-
@mock.patch.dict(
77-
"os.environ",
78-
{
79-
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS: ".*my-secret.*",
80-
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_REQUEST: "Custom-Test-Header-1,Custom-Test-Header-2,Custom-Test-Header-3,Regex-Test-Header-.*,Regex-Invalid-Test-Header-.*,.*my-secret.*",
81-
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_RESPONSE: "Custom-Test-Header-1,Custom-Test-Header-2,Custom-Test-Header-3,my-custom-regex-header-.*,invalid-regex-header-.*,.*my-secret.*",
82-
},
83-
)
84-
8576
class TestCustomHeaders(AsgiTestBase, TestBase):
77+
constructor_params = {}
78+
__test__ = False
79+
80+
def __init_subclass__(cls) -> None:
81+
if cls is not TestCustomHeaders:
82+
cls.__test__ = True
83+
8684
def setUp(self):
8785
super().setUp()
8886
self.tracer_provider, self.exporter = TestBase.create_tracer_provider()
8987
self.tracer = self.tracer_provider.get_tracer(__name__)
9088
self.app = otel_asgi.OpenTelemetryMiddleware(
9189
simple_asgi, tracer_provider=self.tracer_provider, **self.constructor_params,
9290
)
93-
self.constructor_params = {}
9491

9592
def test_http_custom_request_headers_in_span_attributes(self):
9693
self.scope["headers"].extend(
@@ -347,14 +344,14 @@ def test_websocket_custom_response_headers_not_in_span_attributes(self):
347344

348345
class TestCustomHeadersEnv(TestCustomHeaders):
349346
def setUp(self):
350-
super().setUp()
351347
os.environ.update(
352348
{
353349
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS: SANITIZE_FIELDS_TEST_VALUE,
354350
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_REQUEST: SERVER_REQUEST_TEST_VALUE,
355351
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_RESPONSE: SERVER_RESPONSE_TEST_VALUE,
356352
}
357353
)
354+
super().setUp()
358355

359356
def tearDown(self):
360357
os.environ.pop(OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS, None)
@@ -364,10 +361,8 @@ def tearDown(self):
364361

365362

366363
class TestCustomHeadersConstructor(TestCustomHeaders):
367-
def setUp(self):
368-
super().setUp()
369-
self.constructor_params = {
370-
"http_capture_headers_sanitize_fields": SANITIZE_FIELDS_TEST_VALUE,
371-
"http_capture_headers_server_request": SERVER_REQUEST_TEST_VALUE,
372-
"http_capture_headers_server_response": SERVER_RESPONSE_TEST_VALUE,
373-
}
364+
constructor_params = {
365+
"http_capture_headers_sanitize_fields": SANITIZE_FIELDS_TEST_VALUE.split(","),
366+
"http_capture_headers_server_request": SERVER_REQUEST_TEST_VALUE.split(","),
367+
"http_capture_headers_server_response": SERVER_RESPONSE_TEST_VALUE.split(","),
368+
}

instrumentation/opentelemetry-instrumentation-asgi/tests/test_asgi_middleware.py

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,6 @@ async def error_asgi(scope, receive, send):
123123

124124

125125
class TestAsgiApplication(AsgiTestBase):
126-
def setUp(self) -> None:
127-
self.constructor_params = {}
128-
129126
def validate_outputs(self, outputs, error=None, modifiers=None):
130127
# Ensure modifiers is a list
131128
modifiers = modifiers or []
@@ -204,7 +201,7 @@ def validate_outputs(self, outputs, error=None, modifiers=None):
204201

205202
def test_basic_asgi_call(self):
206203
"""Test that spans are emitted as expected."""
207-
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi, **self.constructor_params)
204+
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi)
208205
self.seed_app(app)
209206
self.send_default_request()
210207
outputs = self.get_all_output()
@@ -219,7 +216,7 @@ def test_asgi_not_recording(self):
219216
mock_tracer.start_as_current_span.return_value.__exit__ = mock_span
220217
with mock.patch("opentelemetry.trace.get_tracer") as tracer:
221218
tracer.return_value = mock_tracer
222-
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi, **self.constructor_params)
219+
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi)
223220
self.seed_app(app)
224221
self.send_default_request()
225222
self.assertFalse(mock_span.is_recording())
@@ -229,7 +226,7 @@ def test_asgi_not_recording(self):
229226

230227
def test_asgi_exc_info(self):
231228
"""Test that exception information is emitted as expected."""
232-
app = otel_asgi.OpenTelemetryMiddleware(error_asgi, **self.constructor_params)
229+
app = otel_asgi.OpenTelemetryMiddleware(error_asgi)
233230
self.seed_app(app)
234231
self.send_default_request()
235232
outputs = self.get_all_output()
@@ -304,7 +301,7 @@ def update_expected_server(expected):
304301
return expected
305302

306303
self.scope["server"] = None
307-
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi, **self.constructor_params)
304+
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi)
308305
self.seed_app(app)
309306
self.send_default_request()
310307
outputs = self.get_all_output()
@@ -321,7 +318,7 @@ def update_expected_server(expected):
321318
return expected
322319

323320
self.scope["headers"].append([b"host", hostname])
324-
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi, **self.constructor_params)
321+
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi)
325322
self.seed_app(app)
326323
self.send_default_request()
327324
outputs = self.get_all_output()
@@ -338,7 +335,7 @@ def update_expected_user_agent(expected):
338335
return expected
339336

340337
self.scope["headers"].append([b"user-agent", user_agent])
341-
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi, **self.constructor_params)
338+
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi)
342339
self.seed_app(app)
343340
self.send_default_request()
344341
outputs = self.get_all_output()
@@ -350,7 +347,7 @@ def test_traceresponse_header(self):
350347
orig = get_global_response_propagator()
351348
set_global_response_propagator(TraceResponsePropagator())
352349

353-
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi, **self.constructor_params)
350+
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi)
354351
self.seed_app(app)
355352
self.send_default_request()
356353

@@ -388,7 +385,7 @@ def test_websocket(self):
388385
"client": ("127.0.0.1", 32767),
389386
"server": ("127.0.0.1", 80),
390387
}
391-
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi, **self.constructor_params)
388+
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi)
392389
self.seed_app(app)
393390
self.send_input({"type": "websocket.connect"})
394391
self.send_input({"type": "websocket.receive", "text": "ping"})
@@ -465,7 +462,7 @@ def test_websocket_traceresponse_header(self):
465462
"client": ("127.0.0.1", 32767),
466463
"server": ("127.0.0.1", 80),
467464
}
468-
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi, **self.constructor_params)
465+
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi)
469466
self.seed_app(app)
470467
self.send_input({"type": "websocket.connect"})
471468
self.send_input({"type": "websocket.receive", "text": "ping"})
@@ -491,7 +488,7 @@ def test_websocket_traceresponse_header(self):
491488

492489
def test_lifespan(self):
493490
self.scope["type"] = "lifespan"
494-
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi, **self.constructor_params)
491+
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi)
495492
self.seed_app(app)
496493
self.send_default_request()
497494
span_list = self.memory_exporter.get_finished_spans()
@@ -531,7 +528,7 @@ def update_expected_hook_results(expected):
531528
)
532529

533530
def test_asgi_metrics(self):
534-
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi, **self.constructor_params)
531+
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi)
535532
self.seed_app(app)
536533
self.send_default_request()
537534
self.seed_app(app)
@@ -563,7 +560,7 @@ def test_asgi_metrics(self):
563560
self.assertTrue(number_data_point_seen and histogram_data_point_seen)
564561

565562
def test_basic_metric_success(self):
566-
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi, **self.constructor_params)
563+
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi)
567564
self.seed_app(app)
568565
start = default_timer()
569566
self.send_default_request()
@@ -623,7 +620,7 @@ async def target_asgi(scope, receive, send):
623620
else:
624621
raise ValueError("websockets not supported")
625622

626-
app = otel_asgi.OpenTelemetryMiddleware(target_asgi, **self.constructor_params)
623+
app = otel_asgi.OpenTelemetryMiddleware(target_asgi)
627624
self.seed_app(app)
628625
self.send_default_request()
629626
metrics_list = self.memory_metrics_reader.get_metrics_data()
@@ -653,7 +650,7 @@ def test_no_metric_for_websockets(self):
653650
"client": ("127.0.0.1", 32767),
654651
"server": ("127.0.0.1", 80),
655652
}
656-
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi, **self.constructor_params)
653+
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi)
657654
self.seed_app(app)
658655
self.send_input({"type": "websocket.connect"})
659656
self.send_input({"type": "websocket.receive", "text": "ping"})
@@ -805,7 +802,7 @@ def tearDown(self):
805802
pass
806803

807804
@mock.patch(
808-
"opentelemetry.instrumentation.asgi.collect_custom_request_headers_attributes",
805+
"opentelemetry.instrumentation.asgi.collect_custom_headers_attributes",
809806
side_effect=ValueError("whatever"),
810807
)
811808
def test_asgi_issue_1883(
@@ -815,7 +812,7 @@ def test_asgi_issue_1883(
815812
Test that exception UnboundLocalError local variable 'start' referenced before assignment is not raised
816813
See https://github.com/open-telemetry/opentelemetry-python-contrib/issues/1883
817814
"""
818-
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi, **self.constructor_params)
815+
app = otel_asgi.OpenTelemetryMiddleware(simple_asgi)
819816
self.seed_app(app)
820817
self.send_default_request()
821818
try:

util/opentelemetry-util-http/src/opentelemetry/util/http/__init__.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,11 @@ class SanitizeValue:
7474
def __init__(self, sanitized_fields: Iterable[str]):
7575
self._sanitized_fields = sanitized_fields
7676
if self._sanitized_fields:
77-
self._regex = re_compile("|".join(sanitized_fields), RE_IGNORECASE)
77+
try:
78+
self._regex = re_compile("|".join(sanitized_fields), RE_IGNORECASE)
79+
except Exception as e:
80+
breakpoint()
81+
raise e
7882

7983
def sanitize_header_value(self, header: str, value: str) -> str:
8084
return (

0 commit comments

Comments
 (0)