Skip to content

Commit 9d11787

Browse files
authored
Merge branch 'master' into antonpirker/fix/cloud_resource_context_timeout
2 parents 6ec46a8 + 7deebf0 commit 9d11787

File tree

4 files changed

+57
-30
lines changed

4 files changed

+57
-30
lines changed

sentry_sdk/integrations/starlette.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -362,13 +362,13 @@ def patch_middlewares():
362362

363363
if not_yet_patched:
364364

365-
def _sentry_middleware_init(self, cls, **options):
366-
# type: (Any, Any, Any) -> None
365+
def _sentry_middleware_init(self, cls, *args, **kwargs):
366+
# type: (Any, Any, Any, Any) -> None
367367
if cls == SentryAsgiMiddleware:
368-
return old_middleware_init(self, cls, **options)
368+
return old_middleware_init(self, cls, *args, **kwargs)
369369

370370
span_enabled_cls = _enable_span_for_middleware(cls)
371-
old_middleware_init(self, span_enabled_cls, **options)
371+
old_middleware_init(self, span_enabled_cls, *args, **kwargs)
372372

373373
if cls == AuthenticationMiddleware:
374374
patch_authentication_middleware(cls)

sentry_sdk/tracing.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1052,7 +1052,7 @@ def set_measurement(self, name, value, unit=""):
10521052
self._measurements[name] = {"value": value, "unit": unit}
10531053

10541054
def set_context(self, key, value):
1055-
# type: (str, Any) -> None
1055+
# type: (str, dict[str, Any]) -> None
10561056
"""Sets a context. Transactions can have multiple contexts
10571057
and they should follow the format described in the "Contexts Interface"
10581058
documentation.
@@ -1287,7 +1287,7 @@ def set_measurement(self, name, value, unit=""):
12871287
pass
12881288

12891289
def set_context(self, key, value):
1290-
# type: (str, Any) -> None
1290+
# type: (str, dict[str, Any]) -> None
12911291
pass
12921292

12931293
def init_span_recorder(self, maxlen):

tests/integrations/starlette/test_starlette.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
from starlette.middleware.authentication import AuthenticationMiddleware
3232
from starlette.middleware.trustedhost import TrustedHostMiddleware
3333
from starlette.testclient import TestClient
34-
3534
from tests.integrations.conftest import parametrize_test_configurable_status_codes
3635

3736

@@ -238,6 +237,12 @@ async def do_stuff(message):
238237
await self.app(scope, receive, do_stuff)
239238

240239

240+
class SampleMiddlewareWithArgs(Middleware):
241+
def __init__(self, app, bla=None):
242+
self.app = app
243+
self.bla = bla
244+
245+
241246
class SampleReceiveSendMiddleware:
242247
def __init__(self, app):
243248
self.app = app
@@ -862,6 +867,22 @@ def test_middleware_partial_receive_send(sentry_init, capture_events):
862867
idx += 1
863868

864869

870+
@pytest.mark.skipif(
871+
STARLETTE_VERSION < (0, 35),
872+
reason="Positional args for middleware have been introduced in Starlette >= 0.35",
873+
)
874+
def test_middleware_positional_args(sentry_init):
875+
sentry_init(
876+
traces_sample_rate=1.0,
877+
integrations=[StarletteIntegration()],
878+
)
879+
_ = starlette_app_factory(middleware=[Middleware(SampleMiddlewareWithArgs, "bla")])
880+
881+
# Only creating the App with an Middleware with args
882+
# should not raise an error
883+
# So as long as test passes, we are good
884+
885+
865886
def test_legacy_setup(
866887
sentry_init,
867888
capture_events,

tox.ini

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
# The file (and all resulting CI YAMLs) then need to be regenerated via
1111
# "scripts/generate-test-files.sh".
1212
#
13-
# Last generated: 2025-02-19T12:41:15.689786+00:00
13+
# Last generated: 2025-03-10T11:46:25.287445+00:00
1414

1515
[tox]
1616
requires =
@@ -181,7 +181,7 @@ envlist =
181181
{py3.6}-pymongo-v3.5.1
182182
{py3.6,py3.10,py3.11}-pymongo-v3.13.0
183183
{py3.6,py3.9,py3.10}-pymongo-v4.0.2
184-
{py3.9,py3.12,py3.13}-pymongo-v4.11.1
184+
{py3.9,py3.12,py3.13}-pymongo-v4.11.2
185185

186186
{py3.6}-redis_py_cluster_legacy-v1.3.6
187187
{py3.6,py3.7}-redis_py_cluster_legacy-v2.0.0
@@ -202,42 +202,45 @@ envlist =
202202

203203
{py3.7,py3.12,py3.13}-statsig-v0.55.3
204204
{py3.7,py3.12,py3.13}-statsig-v0.56.0
205+
{py3.7,py3.12,py3.13}-statsig-v0.57.1
205206

206207
{py3.8,py3.12,py3.13}-unleash-v6.0.1
207208
{py3.8,py3.12,py3.13}-unleash-v6.1.0
209+
{py3.8,py3.12,py3.13}-unleash-v6.2.0
208210

209211

210212
# ~~~ GraphQL ~~~
211213
{py3.8,py3.10,py3.11}-ariadne-v0.20.1
212214
{py3.8,py3.11,py3.12}-ariadne-v0.22
213215
{py3.8,py3.11,py3.12}-ariadne-v0.24.0
214-
{py3.9,py3.12,py3.13}-ariadne-v0.26.0
216+
{py3.9,py3.12,py3.13}-ariadne-v0.26.1
215217

216218
{py3.6,py3.9,py3.10}-gql-v3.4.1
217-
{py3.7,py3.11,py3.12}-gql-v3.5.0
219+
{py3.7,py3.11,py3.12}-gql-v3.5.2
218220
{py3.9,py3.12,py3.13}-gql-v3.6.0b4
219221

220222
{py3.6,py3.9,py3.10}-graphene-v3.3
221223
{py3.8,py3.12,py3.13}-graphene-v3.4.3
222224

223225
{py3.8,py3.10,py3.11}-strawberry-v0.209.8
224-
{py3.8,py3.11,py3.12}-strawberry-v0.226.2
225-
{py3.8,py3.11,py3.12}-strawberry-v0.243.1
226-
{py3.9,py3.12,py3.13}-strawberry-v0.260.2
226+
{py3.8,py3.11,py3.12}-strawberry-v0.227.7
227+
{py3.8,py3.11,py3.12}-strawberry-v0.245.0
228+
{py3.9,py3.12,py3.13}-strawberry-v0.262.1
227229

228230

229231
# ~~~ Network ~~~
230232
{py3.7,py3.8}-grpc-v1.32.0
231233
{py3.7,py3.9,py3.10}-grpc-v1.44.0
232234
{py3.7,py3.10,py3.11}-grpc-v1.58.3
233235
{py3.8,py3.12,py3.13}-grpc-v1.70.0
236+
{py3.9,py3.12,py3.13}-grpc-v1.71.0rc2
234237

235238

236239
# ~~~ Tasks ~~~
237240
{py3.6,py3.7,py3.8}-celery-v4.4.7
238241
{py3.6,py3.7,py3.8}-celery-v5.0.5
239242
{py3.8,py3.11,py3.12}-celery-v5.4.0
240-
{py3.8,py3.12,py3.13}-celery-v5.5.0rc4
243+
{py3.8,py3.12,py3.13}-celery-v5.5.0rc5
241244

242245
{py3.6,py3.7}-dramatiq-v1.9.0
243246
{py3.6,py3.8,py3.9}-dramatiq-v1.12.3
@@ -247,7 +250,7 @@ envlist =
247250
{py3.8,py3.9}-spark-v3.0.3
248251
{py3.8,py3.9}-spark-v3.2.4
249252
{py3.8,py3.10,py3.11}-spark-v3.4.4
250-
{py3.8,py3.10,py3.11}-spark-v3.5.4
253+
{py3.8,py3.10,py3.11}-spark-v3.5.5
251254

252255

253256
# ~~~ Web 1 ~~~
@@ -259,7 +262,7 @@ envlist =
259262
{py3.6,py3.9,py3.10}-starlette-v0.16.0
260263
{py3.7,py3.10,py3.11}-starlette-v0.26.1
261264
{py3.8,py3.11,py3.12}-starlette-v0.36.3
262-
{py3.9,py3.12,py3.13}-starlette-v0.45.3
265+
{py3.9,py3.12,py3.13}-starlette-v0.46.1
263266

264267

265268
# ~~~ Web 2 ~~~
@@ -294,9 +297,9 @@ envlist =
294297
{py3.6,py3.7,py3.8}-trytond-v5.8.16
295298
{py3.8,py3.10,py3.11}-trytond-v6.8.17
296299
{py3.8,py3.11,py3.12}-trytond-v7.0.9
297-
{py3.8,py3.11,py3.12}-trytond-v7.4.6
300+
{py3.8,py3.11,py3.12}-trytond-v7.4.7
298301

299-
{py3.7,py3.11,py3.12}-typer-v0.15.1
302+
{py3.7,py3.12,py3.13}-typer-v0.15.2
300303

301304

302305

@@ -562,7 +565,7 @@ deps =
562565
pymongo-v3.5.1: pymongo==3.5.1
563566
pymongo-v3.13.0: pymongo==3.13.0
564567
pymongo-v4.0.2: pymongo==4.0.2
565-
pymongo-v4.11.1: pymongo==4.11.1
568+
pymongo-v4.11.2: pymongo==4.11.2
566569
pymongo: mockupdb
567570

568571
redis_py_cluster_legacy-v1.3.6: redis-py-cluster==1.3.6
@@ -584,23 +587,25 @@ deps =
584587

585588
statsig-v0.55.3: statsig==0.55.3
586589
statsig-v0.56.0: statsig==0.56.0
590+
statsig-v0.57.1: statsig==0.57.1
587591
statsig: typing_extensions
588592

589593
unleash-v6.0.1: UnleashClient==6.0.1
590594
unleash-v6.1.0: UnleashClient==6.1.0
595+
unleash-v6.2.0: UnleashClient==6.2.0
591596

592597

593598
# ~~~ GraphQL ~~~
594599
ariadne-v0.20.1: ariadne==0.20.1
595600
ariadne-v0.22: ariadne==0.22
596601
ariadne-v0.24.0: ariadne==0.24.0
597-
ariadne-v0.26.0: ariadne==0.26.0
602+
ariadne-v0.26.1: ariadne==0.26.1
598603
ariadne: fastapi
599604
ariadne: flask
600605
ariadne: httpx
601606

602607
gql-v3.4.1: gql[all]==3.4.1
603-
gql-v3.5.0: gql[all]==3.5.0
608+
gql-v3.5.2: gql[all]==3.5.2
604609
gql-v3.6.0b4: gql[all]==3.6.0b4
605610

606611
graphene-v3.3: graphene==3.3
@@ -612,9 +617,9 @@ deps =
612617
py3.6-graphene: aiocontextvars
613618

614619
strawberry-v0.209.8: strawberry-graphql[fastapi,flask]==0.209.8
615-
strawberry-v0.226.2: strawberry-graphql[fastapi,flask]==0.226.2
616-
strawberry-v0.243.1: strawberry-graphql[fastapi,flask]==0.243.1
617-
strawberry-v0.260.2: strawberry-graphql[fastapi,flask]==0.260.2
620+
strawberry-v0.227.7: strawberry-graphql[fastapi,flask]==0.227.7
621+
strawberry-v0.245.0: strawberry-graphql[fastapi,flask]==0.245.0
622+
strawberry-v0.262.1: strawberry-graphql[fastapi,flask]==0.262.1
618623
strawberry: httpx
619624

620625

@@ -623,6 +628,7 @@ deps =
623628
grpc-v1.44.0: grpcio==1.44.0
624629
grpc-v1.58.3: grpcio==1.58.3
625630
grpc-v1.70.0: grpcio==1.70.0
631+
grpc-v1.71.0rc2: grpcio==1.71.0rc2
626632
grpc: protobuf
627633
grpc: mypy-protobuf
628634
grpc: types-protobuf
@@ -633,7 +639,7 @@ deps =
633639
celery-v4.4.7: celery==4.4.7
634640
celery-v5.0.5: celery==5.0.5
635641
celery-v5.4.0: celery==5.4.0
636-
celery-v5.5.0rc4: celery==5.5.0rc4
642+
celery-v5.5.0rc5: celery==5.5.0rc5
637643
celery: newrelic
638644
celery: redis
639645
py3.7-celery: importlib-metadata<5.0
@@ -646,7 +652,7 @@ deps =
646652
spark-v3.0.3: pyspark==3.0.3
647653
spark-v3.2.4: pyspark==3.2.4
648654
spark-v3.4.4: pyspark==3.4.4
649-
spark-v3.5.4: pyspark==3.5.4
655+
spark-v3.5.5: pyspark==3.5.5
650656

651657

652658
# ~~~ Web 1 ~~~
@@ -662,7 +668,7 @@ deps =
662668
starlette-v0.16.0: starlette==0.16.0
663669
starlette-v0.26.1: starlette==0.26.1
664670
starlette-v0.36.3: starlette==0.36.3
665-
starlette-v0.45.3: starlette==0.45.3
671+
starlette-v0.46.1: starlette==0.46.1
666672
starlette: pytest-asyncio
667673
starlette: python-multipart
668674
starlette: requests
@@ -720,12 +726,12 @@ deps =
720726
trytond-v5.8.16: trytond==5.8.16
721727
trytond-v6.8.17: trytond==6.8.17
722728
trytond-v7.0.9: trytond==7.0.9
723-
trytond-v7.4.6: trytond==7.4.6
729+
trytond-v7.4.7: trytond==7.4.7
724730
trytond: werkzeug
725731
trytond-v4.6.9: werkzeug<1.0
726732
trytond-v4.8.18: werkzeug<1.0
727733

728-
typer-v0.15.1: typer==0.15.1
734+
typer-v0.15.2: typer==0.15.2
729735

730736

731737

0 commit comments

Comments
 (0)