Skip to content

Commit 6f3633a

Browse files
committed
Implement code review remarks: update starlette dependencies in bootstrap/test-requirements. Use setUp/tearDown iso decorator on test class
1 parent 8135dc5 commit 6f3633a

File tree

4 files changed

+58
-29
lines changed

4 files changed

+58
-29
lines changed

instrumentation/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
| [opentelemetry-instrumentation-requests](./opentelemetry-instrumentation-requests) | requests ~= 2.0 | Yes | migration
4545
| [opentelemetry-instrumentation-sqlalchemy](./opentelemetry-instrumentation-sqlalchemy) | sqlalchemy >= 1.0.0, < 2.1.0 | Yes | development
4646
| [opentelemetry-instrumentation-sqlite3](./opentelemetry-instrumentation-sqlite3) | sqlite3 | No | development
47-
| [opentelemetry-instrumentation-starlette](./opentelemetry-instrumentation-starlette) | starlette >= 0.13, <0.15 | Yes | development
47+
| [opentelemetry-instrumentation-starlette](./opentelemetry-instrumentation-starlette) | starlette >= 0.13 | Yes | development
4848
| [opentelemetry-instrumentation-system-metrics](./opentelemetry-instrumentation-system-metrics) | psutil >= 5 | No | development
4949
| [opentelemetry-instrumentation-threading](./opentelemetry-instrumentation-threading) | threading | No | development
5050
| [opentelemetry-instrumentation-tornado](./opentelemetry-instrumentation-tornado) | tornado >= 5.1.1 | Yes | development

instrumentation/opentelemetry-instrumentation-starlette/test-requirements.latest.txt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,13 @@
1717
# opentelemetry-instrumentation-asgi
1818
# opentelemetry-instrumentation-starlette
1919
anyio==4.5.2 ; python_full_version < '3.9'
20-
# via httpx
20+
# via
21+
# httpx
22+
# starlette
2123
anyio==4.8.0 ; python_full_version >= '3.9'
22-
# via httpx
24+
# via
25+
# httpx
26+
# starlette
2327
asgiref==3.8.1
2428
# via opentelemetry-instrumentation-asgi
2529
certifi==2025.1.31
@@ -72,14 +76,17 @@ requests==2.32.3
7276
# -r instrumentation/opentelemetry-instrumentation-starlette/test-requirements.in
7377
sniffio==1.3.1
7478
# via anyio
75-
starlette==0.14.2
79+
starlette==0.44.0 ; python_full_version < '3.9'
80+
# via opentelemetry-instrumentation-starlette
81+
starlette==0.46.2 ; python_full_version >= '3.9'
7682
# via opentelemetry-instrumentation-starlette
7783
tomli==2.2.1 ; python_full_version < '3.11'
7884
# via pytest
7985
typing-extensions==4.12.2 ; python_full_version < '3.13'
8086
# via
8187
# anyio
8288
# asgiref
89+
# starlette
8390
urllib3==2.2.3 ; python_full_version < '3.9'
8491
# via requests
8592
urllib3==2.3.0 ; python_full_version >= '3.9'

instrumentation/opentelemetry-instrumentation-starlette/tests/test_starlette_instrumentation.py

Lines changed: 46 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -667,15 +667,23 @@ async def foobar_web(websocket: WebSocket) -> None:
667667
)
668668

669669

670-
@patch.dict(
671-
"os.environ",
672-
{
673-
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS: ".*my-secret.*",
674-
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.*",
675-
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.*",
676-
},
677-
)
678670
class TestHTTPAppWithCustomHeaders(TestBaseWithCustomHeaders):
671+
def setUp(self):
672+
super().setUp()
673+
self.test_env_patch = patch.dict(
674+
"os.environ",
675+
{
676+
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS: ".*my-secret.*",
677+
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.*",
678+
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.*",
679+
},
680+
)
681+
self.test_env_patch.start()
682+
683+
def tearDown(self):
684+
self.test_env_patch.stop()
685+
super().tearDown()
686+
679687
def test_custom_request_headers_in_span_attributes(self):
680688
expected = {
681689
"http.request.header.custom_test_header_1": (
@@ -790,15 +798,23 @@ def test_custom_response_headers_not_in_span_attributes(self):
790798
self.assertNotIn(key, server_span.attributes)
791799

792800

793-
@patch.dict(
794-
"os.environ",
795-
{
796-
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS: ".*my-secret.*",
797-
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.*",
798-
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.*",
799-
},
800-
)
801801
class TestWebSocketAppWithCustomHeaders(TestBaseWithCustomHeaders):
802+
def setUp(self):
803+
super().setUp()
804+
self.test_env_patch = patch.dict(
805+
"os.environ",
806+
{
807+
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS: ".*my-secret.*",
808+
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.*",
809+
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.*",
810+
},
811+
)
812+
self.test_env_patch.start()
813+
814+
def tearDown(self):
815+
self.test_env_patch.stop()
816+
super().tearDown()
817+
802818
def test_custom_request_headers_in_span_attributes(self):
803819
expected = {
804820
"http.request.header.custom_test_header_1": (
@@ -913,23 +929,29 @@ def test_custom_response_headers_not_in_span_attributes(self):
913929
self.assertNotIn(key, server_span.attributes)
914930

915931

916-
@patch.dict(
917-
"os.environ",
918-
{
919-
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS: ".*my-secret.*",
920-
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.*",
921-
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.*",
922-
},
923-
)
924932
class TestNonRecordingSpanWithCustomHeaders(TestBaseWithCustomHeaders):
925933
def setUp(self):
926934
super().setUp()
935+
self.test_env_patch = patch.dict(
936+
"os.environ",
937+
{
938+
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS: ".*my-secret.*",
939+
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.*",
940+
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.*",
941+
},
942+
)
943+
self.test_env_patch.start()
944+
927945
reset_trace_globals()
928946
set_tracer_provider(tracer_provider=NoOpTracerProvider())
929947

930948
self._app = self.create_app()
931949
self._client = TestClient(self._app)
932950

951+
def tearDown(self):
952+
self.test_env_patch.stop()
953+
super().tearDown()
954+
933955
def test_custom_header_not_present_in_non_recording_span(self):
934956
resp = self._client.get(
935957
"/foobar",

opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@
189189
"instrumentation": "opentelemetry-instrumentation-sqlalchemy==0.54b0.dev",
190190
},
191191
{
192-
"library": "starlette >= 0.13, <0.15",
192+
"library": "starlette >= 0.13",
193193
"instrumentation": "opentelemetry-instrumentation-starlette==0.54b0.dev",
194194
},
195195
{

0 commit comments

Comments
 (0)